나는 두 클래스, Parser
과 Item
을 가지고 있습니다. Parser 클래스는 구조화 된 문서를 파싱하고 Parser::GetItem(int some_id)
과 같은 것을 호출하면 Item
-objects를 반환합니다. Item 클래스는 "Tell - do not ask"원칙을 염두에두고 작성되었습니다. 그 말은 건설 중 Parser
으로 채워진 몇 가지 내부 변수에 대한 getter-methods가 없다는 의미입니다.'tell-dont-ask'객체를 반환하는 파서를 단위 테스트하는 법?
질문은 다음과 같습니다 : Parser
클래스를 unittest하려면 어떻게해야합니까? 내부 Item
변수가 올바르게 구문 분석되었는지 확인하는 방법? 수업을 재정렬해야합니까? parser-interface가 객체 들인 Item
을 완벽하게 반환한다는 것은 나쁜 설계일까요?
이제 파서를 두 개의 클래스로 분할했습니다. 실제 구문 분석기. 문자열 만 struct에 저장하고 항목 작성기 클래스. 나중에 구문 분석기에서 필요한 구조를 가져오고 문자열을 숫자로 변환하는 것과 같은 모든 변환 및 검사 작업을 수행합니다. 이제 구문 분석기가 문서에서 올바른 정보를 추출하는지 확인할 수 있습니다. 그러나 항목 빌더의 모든 변환이 제대로 작동하는지 확인할 수 없기 때문에 문제가 남아 있습니다. 필자는 아이템 빌더의 기능을 최소화하고 가능한 한 테스트 가능한 헬퍼 클래스로 스왑 아웃해야한다고 생각합니다. – lslah
답변 해 주셔서 감사합니다. 제 파서가 너무 크다는 중요한 포인트를 쳤다고 생각합니다. 또한 링크에 대해 감사드립니다. 나는 나중에 보게 될거야. – lslah