글쎄, 내가 해결 방법을 찾았지만 ... TDD 순수 주의자가 아닙니다. 시험 내 응용 프로그램 클래스에서
(실제로 일부 유틸리티 클래스가 될 수 후 어떤 응용 프로그램 클래스가 사용하는) 나는이 넣어 :이에서 LOGGER 라인을 변경 응용 프로그램 클래스에 다시
private boolean printErrorStackTrace = true;
void setPrintErrorStackTrace(boolean doPrint){
printErrorStackTrace = doPrint;
}
을
LOGGER.error(String.format("file was %s", documentFile),
printErrorStackTrace? e : null);
그리고 내 시험 방법에 이걸 넣어 : 이것에
LOGGER.error(String.format("file was %s", documentFile), e);
appClass.setPrintErrorStackTrace(false);
는 ... 분명히 우리는 테스트 코드는 응용 프로그램 코드에 도달하는 것을 허용하지 말 것 ...하지만 물론 내가 대신 조건 절에 방법 getPrintErrorStackTrace()
를 사용 할 수 ... 그리고 그 조롱 메서드를 호출합니다. 그러나 이보다 덜 이교 적이겠습니까? 또한 테스트를 돕기 위해 기능을 추가하지 말라는 의미입니다.
하지만 내 기록은 이제 훨씬 깨끗해 보입니다.