더북(TheBook)

JUnit이 테스트마다 새로운 인스턴스를 생성하는 것을 믿지 못한다면 디버거를 띄우고 System.out.println 메서드 호출을 몇 개 넣어 보면 됩니다. JUnit은 이러한 방식으로 모든 테스트를 독립적으로 만듭니다. ProfileTest 두 개에 속한 테스트가 동일한 인스턴스에서 실행된다면 공유된 Profile 객체의 상태를 정리(clean up)하는 것도 걱정해야 합니다.

여러분은 어떤 테스트 코드가 다른 테스트에 영향을 주는 것을 최소화하고 싶습니다(즉, 테스트 클래스에는 static 필드3를 피해야 합니다). 단위 테스트가 수천 개 있는데 독립적이지 않고 상호 의존성이 존재한다고 가정해 봅시다. 테스트 xyz가 실패하면 그 이유를 찾느라 엄청난 노력이 들어갈 것입니다. xyz 이전에 실행된 모든 테스트를 살펴보아야 하기 때문입니다.

이제 테스트는 훨씬 읽기 수월합니다. 코드를 좀 더 다듬어 봅시다. 지역 변수를 인라인(inline)하여 좀 더 압축하고 가독성을 높여 보겠습니다.

신간 소식 구독하기
뉴스레터에 가입하시고 이메일로 신간 소식을 받아 보세요.