더북(TheBook)

예제 4-10의 어설션 부분을 살펴봅시다. 여기서는 db에서 expected를 찾습니다. 어떻게 expecteddb에 들어가 있을까요? 아직 하지는 않았지만, 이런 작업이 가능한 객체입니다. 즉, 어설션 과정에서는 객체의 예상 값과 실제 값이 같은지 비교하는 등가 비교를 정의해서 사용하며, Reservation 클래스에서 Equals 메서드를 오버라이드합니다. 변경할 수 없는 클래스에서만 구조적 동등성(structural equality)26을 안전하게 구현할 수 있습니다. 그렇지 않은 경우에는 변경 가능한 두 객체를 비교해서 같다고 판단한 이후에만 두 객체의 값을 다르게 만들 수 있습니다.

구조적 동등성은 우아하게 어설션을 구현할 수 있게 해줍니다[104]. 테스트에서 예상 결과를 나타내는 객체를 만들고 실제 결과와 비교하기만 하면 되기 때문이죠.

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