티스토리 툴바

Easy Mock 2 시작하기

2006 2006/09/27 17:49
Mock Objects 라이브러리 선정을 위한 참고 자료에서 소개한 easy mock 사용하기. 2.2 홈페이지 문서를 참조하여 작성한다.

easy mock2 부터는 jdk5에서만 구동함!

먼저 Mock 객체를 얻기 위한 세 가지 할 일
  1. create a Mock Object for the interface we would like to simulate,
  2. record the expected behavior, and
  3. switch the Mock Object to replay state.

1번에 대한 예제 코드:
mock = createMock(Collaborator.class);

createMock은 이클립스(3.2 기준) 자동 import가 되지 않으므로 직접 타이핑해야 한다.
import static org.easymock.EasyMock.createMock;

2번에 대한 예제 코드는 애매하다. 업무(도메인)에 따라 천차 만별이기 때문이다. 중요한 것은 JUnit assertion의 기대값을 하나의 객체가 아니라 행위로 설정 혹은 녹화 한다는 점이다. 이렇게 예상되는 행위를 설정할 수 있는 'intelligence'로 인해서 stub과 구분된다는 점을 Expert Spring MVC and Web Flow (Expert) p297에서 언급하고 있다. 마틴 파울러의 글, 테스트 전용 객체(Test Double)에서는 다른 개념을 더 엮어서 분류하고 있다.

3번은 예상/녹화한 대로 실행/재생하는 것이다:
replay(mock);

추가적으로 애초 의도대로 테스트가 진행되었는지 검증이 필요하다:
verify(mock);

To verify that the specified behavior has been used, we have to call verify(mock)

실전 예제

웹 컨트롤러의 ID 중복 확인 사례




설정

트랙백

댓글