더북(TheBook)
    Assert.True(
        response.IsSuccessStatusCode,
        $"Actual status code: {response.StatusCode}.");
}

고수준 테스트에서는 어설션이 비교적 쉽게 통과할 수 있도록 만들어야 합니다. 개발 과정에서 세부 사항이 많이 바뀌므로, 어설션을 너무 구체적으로 작성하면 자주 수정해야 하기 때문입니다. 따라서 가볍게 접근하는 것이 좋습니다. 예제 4-7의 테스트는 4.2.1절에서 이야기한 것처럼 HTTP 상태 코드가 성공을 나타내는지 확인만 합니다. 테스트 코드를 추가함에 따라 시스템의 예상 동작을 점점 더 자세히 설명하게 되므로, 이 작업을 반복해서 진행해야 합니다.

PostReservation 메서드에서 모든 테스트가 진행됩니다. 이것은 예제 4-8의 테스트 유틸리티 메서드[66]입니다.

대부분의 코드는 예제 4-4와 비슷합니다. 테스트에서 이 부분을 적어도 되는데, 왜 그렇게 하지 않았을까요? 몇 가지 이유가 있지만, 이 역시 소프트웨어 공학이 과학이라기보다 예술이라고 할 수 있기 때문입니다18.

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