더북(TheBook)

TDD에 충실한 사람이면 무조건 전진해서 createReservation을 고치기보다는 일단 새 기능을 확인하는 테스트를 작성한다. 첫 번째 테스트에서는 예약 데이터가 제대로 웹 서비스 종단점까지 보내졌는지를 확인한다.

그런데 여기서 “createReservation이 웹 서비스 통신까지 맡아야 하나?” 하는 의문을 품는 건 자기 계발에 상당히 도움이 된다.


describe('createReservation(passenger, flight)', {
// Existing tests
it('예약 정보를 웹 서비스 종단점으로 전송한다', function() {
  
  // createReservation이 웹 서비스 통신까지 맡아야 하나?
              
});
});

정답은 ‘십중팔구 그럴 일은 없다’이다. 웹 서비스 통신 전담 객체가 없으면 하나 만드는(그리고 테스트하는) 편이 좋겠다.

코드 테스트성을 극대화하면 SOLID 원칙을 어긴 코드를 쉽게 솎아낼 수 있다.

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