2014-04-10 5 views
2

저는 TDD를 처음 사용하고 있으며, 지금까지와 같이 조정 과정이었습니다.TDD 테스트 응용 프로그램 진입 점

그러나 응용 프로그램의 진입 점을 테스트하는 방법에 대해 고심하고 있습니다. 그 사람은 main(String... args) 메소드, 즉 디스크에서 /로 프로퍼티 파일을로드하고 저장하는 클래스를 의미합니다.

처음 코드를 작성했을 때 문제가되지 않았습니다. 나는 그런 종류의 메소드/클래스에 대한 테스트를 작성하지 않을 것입니다. 그러나 테스트없이 작성해야하는 코드가있을 때 어떻게 TDD 프로세스를 따라야합니까?

즉, 엔트리 포인트를 쓰는 것이 TDD 개발 프로세스에 어떻게 맞을까요?

대부분의 경우

답변

3

, 당신이 할 수없는 단위 시험 진입 점, 정의함으로써, 단위 테스트 종속성에서 분리에 장치를 테스트하기 때문이다.

모든 사소한 경우를 제외하고 응용 프로그램의 진입 점은 Composition Root 즉 모든 단위가 통합 된 곳입니다. 진입 점에서 전체 시스템 테스트를 수행 할 수 있지만 보통은 Humble Executable으로 처리해야합니다.

내 개인적인 규칙은 겸허 한 실행 파일에는 로직 (구성 만)이 포함될 수 없다는 것이고, 나는 이것을 Cyclomatic Complexity; 만약 Humble Executable의 Cyclomatic Complexity가 1이라면, 그것을 테스트하지 않아도됩니다. 그러나

, 당신은 일반적으로 여전히 Test Doubles와 일부 외부 서비스를 교체해야 할 것입니다하지만 당신이하지 단위 시험 진입 점, 여전히, 구성을 구동 할 Outside-In TDD을 사용할 수 있습니다 수 있지만.

+1

답변 해 주셔서 감사합니다. 코드를 처음 수행 할 때 이미 지침을 따르고 TDD로 전환하면 문제가 시작됩니다. 분명히 내 관심사가 무엇인지 분명하지 않기 때문에 내 질문을 편집했습니다. 이것을 봐주세요. – eitanfar