달력

022010  이전 다음

  •  
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  •  
  •  
  •  
  •  
  •  
  •  

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 중복 확인 사례




이올린에 북마크하기(0) 이올린에 추천하기(0)
Posted by 영회