예제 2-9에서 바뀐 부분을 굵게 표시해 두었다. 예제 2-10 역시 특별한 것은 없지만, 객체 지향에 배경지식이 있으면 더 편하게 느낄 수 있을 것이다. 중요한 점은 이것은 비밀번호 검증 기능을 설계하는 여러 가지 방법 중 하나일 뿐이라는 것이다. 필자는 이 클래스 기반 접근 방식을 이용하여 이 설계가 테스트에 어떤 영향을 미치는지 보여 주고자 한다.
예제 2-10에서 현재 테스트 시나리오의 진입점과 종료점은 어디에 해당할까? 잠시 생각해 보자. 작업 단위의 범위가 넓어졌다. fakeRule을 사용하여 실패하도록 만든 시나리오를 테스트하려면 addRule과 verify라는 두 가지 상태를 변경하는 함수를 호출해야 한다.
이제 테스트 코드가 어떻게 생겼는지 살펴보자. 변경된 부분은 여느 때처럼 강조 표시했다.