2014-02-21 2 views

답변

9

이되면

는 Mockito는 Hamcrest의 매처 (matcher)를 사용합니다. 모든 Mockitos 인수 matchers는이 matchers를 사용하여 제공된 인수를 편리하고 형식이 안전한 방식으로 일치시킵니다.

Mockito는 또한 argThat(Matcher) 메서드를 사용하여 Hamcrest 또는 사용자 정의 Matcher 구현의 모든 정규식 구현을 사용할 수 있습니다. 또한 모든 primitved 유형에 대해 intThat(Matcher)과 같은 특수화 된 버전이 있습니다.

doReturn("FooBar") 
    .when(persons) 
    .getPersons(Mockito.intThat(Matchers.greaterThan(10)); 
+1

+1 작업을 수행하는 기존의 정규 표현자를 찾습니다. –

1

다음

doReturn("FooBar").when(persons).getPersons(intThat(MyMatchers.isGreatherThan(10))); 

를 사용

나는 이런 식으로 뭔가를 쓰고 싶습니다 IntGreatherThan 매처의 인스턴스. 정적 수입 MyMatchers.isGreaterThan, 그것은

doReturn("FooBar").when(persons).getPersons(intThat(isGreatherThan(10))); 
+1

+1입니다. 하지만 기존 햄 클레스트보다 더 많이 쓰는 사람은 자신의 글을 작성하는 대신에 사용할 수 있습니까? –

+0

이러한 일치 프로그램이 있으면 해당 명령을 사용할 수 있는지 확인하십시오. –

+0

예, 그러한 일치 자입니다. 너와 똑같은 걸 알아 냈어. – Oliver

2

Mockito 2

Hamcrest 더 이상 Mockito 매처 (matcher)에 의존하다 :

그래서, 그것을 알고, 나는 메소드 호출의 조롱을 다시 썼다.

그러나 나는 MockitoHamcrest을 발견했는데, 이것은 Hamcrest matchers와의 상호 운용성을 제공하는 것으로 보인다. 문제의 예제에 적용하면 다음과 같이 나타납니다.

관련 문제