Mockito - 아규먼트 Matcher
모하니?/Coding : 2008. 8. 12. 10:17
참조 : http://mockito.googlecode.com/svn/branches/1.4/javadoc/org/mockito/Mockito.html
// 내장된 anyint() 아규먼트 매처를 사용해서 스텁 만들기.
stub(mockedList.get(anyInt())).toReturn("element");
// hamcrest가 제공하는 매처를 사용해서 스텁 만들기.
stub(mockedList.contains(argThat(isValid()))).toReturn("element");
// 다음은 "element"를 출력한다.
System.out.println(mockedList.get(999));
// 아규먼트 매처를 사용해서 verify()를 할 수도 있다.
verify(mockedList).get(anyInt());
아규먼트 매처는 flexible한 검증과 스텁을 제공한다. 전체 매처는 여기서 확인할 수 있다.
예:
verify(mock).someMethod(anyInt(), anyString(), eq("third argument"));
// 위와 같이 사용해야 한다. eq()도 아규먼트 매처니까 괜찮다.
verify(mock).someMethod(anyInt(), anyString(), "third argument");
// 이렇게 하면 안 된다. 아규먼트 매처없이 사용한 세번째 아규먼트 때문에 예외가 발생할 것이다.
Whiteship's Exercise
// 내장된 anyint() 아규먼트 매처를 사용해서 스텁 만들기.
stub(mockedList.get(anyInt())).toReturn("element");
// hamcrest가 제공하는 매처를 사용해서 스텁 만들기.
stub(mockedList.contains(argThat(isValid()))).toReturn("element");
// 다음은 "element"를 출력한다.
System.out.println(mockedList.get(999));
// 아규먼트 매처를 사용해서 verify()를 할 수도 있다.
verify(mockedList).get(anyInt());
아규먼트 매처는 flexible한 검증과 스텁을 제공한다. 전체 매처는 여기서 확인할 수 있다.
주의할 것:
아규먼트 매처를 하나 사용하면, 다른 아규먼트들도 모두 매처로 표현해야 한다.
아규먼트 매처를 하나 사용하면, 다른 아규먼트들도 모두 매처로 표현해야 한다.
예:
verify(mock).someMethod(anyInt(), anyString(), eq("third argument"));
// 위와 같이 사용해야 한다. eq()도 아규먼트 매처니까 괜찮다.
verify(mock).someMethod(anyInt(), anyString(), "third argument");
// 이렇게 하면 안 된다. 아규먼트 매처없이 사용한 세번째 아규먼트 때문에 예외가 발생할 것이다.
Whiteship's Exercise
@Test
public void ilike() {
Criteria c = mock(Criteria.class);
CriteriaUtils.ilike(c, "name", "keesun", MatchMode.ANYWHERE);
verify(c).add((Criterion) anyObject());
}
@Test
public void ilikeWithNullValue() {
Criteria c = mock(Criteria.class);
CriteriaUtils.ilike(c, "name", null, MatchMode.ANYWHERE);
verify(c, never()).add((Criterion) anyObject());
}
public void ilike() {
Criteria c = mock(Criteria.class);
CriteriaUtils.ilike(c, "name", "keesun", MatchMode.ANYWHERE);
verify(c).add((Criterion) anyObject());
}
@Test
public void ilikeWithNullValue() {
Criteria c = mock(Criteria.class);
CriteriaUtils.ilike(c, "name", null, MatchMode.ANYWHERE);
verify(c, never()).add((Criterion) anyObject());
}
'모하니? > Coding' 카테고리의 다른 글
TDDBE - xUnit 20장 (0) | 2008.09.01 |
---|---|
TDDBE - xUnit 19장 (2) | 2008.09.01 |
TDDBE - xUnit 18장. (0) | 2008.09.01 |
static inner class를 Spring에 bean으로 등록하기 (2) | 2008.08.21 |
국내 최초 OSGi 기반 애플리케이션 프레임워크 OSAF 1.5 - 멀지 않았다. (2) | 2008.08.12 |
Mockito - 아규먼트 Matcher (0) | 2008.08.12 |
JavaMail - 첨부파일 읽기 (0) | 2008.08.07 |
JavaMail - 첨부 파일 보내기 (0) | 2008.08.07 |
JavaMail - HTML에 이미지도 같이 보내기 (2) | 2008.08.07 |
JavaMail - pom.xml에 dependency 추가하기 (0) | 2008.08.07 |
JavaMail - HTML 메일 보내기 (0) | 2008.08.07 |