더북(TheBook)

1.5 다른 종료점, 다른 기법

종료점 유형에 왜 이렇게나 많은 시간을 할애할까? 각 종료점마다 테스트를 만들어 분리하는 것이 코드 관리 측면에서 유리할 뿐만 아니라, 종료점 종류에 따라 테스트 방법이 다소 다르기 때문이다.

반환 값이 있는 종료점: 이 종료점(<xUnit 테스트 패턴>에서의 직접 출력에 해당)은 테스트하기 가장 쉬운 타입이다. 작업 단위를 실행하여 진입점을 호출하고 실행 결과 값을 받아 그 값을 확인하면 된다.

상태 값을 변경하는 종료점: 상태 값을 바꾸는 경우(간접 출력)는 좀 더 많은 작업이 필요하다. 어떤 것을 호출한 후 다른 것을 호출하여 무언가를 확인하거나, 이전에 호출한 것을 다시 호출하여 모든 것이 의도대로 흘러갔는지 확인해야 한다.

서드 파티를 호출하는 종료점: 종료점 중 가장 많은 작업이 필요한 타입이다. 서드 파티는 외부에 실행 주도권이 있는 상황이라 직접적인 코드 간섭이 힘들다. 아직 자세히 살펴보지 않았지만, 이 경우 모의 객체(mock objects)를 만들어 테스트 결과를 임의로 조작하는 방법이 있다. 이 방법은 책 후반부에서 다시 자세히 설명하겠다.

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