Mockito: Съпоставете всеки низ с изключение на един

Как мога да напиша съвпадение с помощта на Mockito, което да съвпада с всеки низ, освен конкретен?

Опитах да използвам някои съвпадения на hamcrest, за да отричам и комбинирам други съвпадения, но всички съвпадения на hamcrest връщат стойности от тип Matcher<T>, които не работят много добре с Mockito съвпадения.


person Stephan    schedule 07.05.2015    source източник
comment
Използвайте argThat(yourHamcrestMatcher). docs.mockito.googlecode.com/hg/org/mockito/Matchers. html   -  person JB Nizet    schedule 07.05.2015
comment
@JBNizet предполагам, че работи, защото argThat(matcher()) по същество преобразува връщания тип от Matcher<T> в <T>?   -  person Stephan    schedule 07.05.2015
comment
@JNNizet: URL адресът на документите вече е site.mockito. org/mockito/docs/current/org/mockito/Matchers.html   -  person Jmini    schedule 08.06.2016


Отговори (2)


Просто посочете, че с Mockito можете също да използвате AdditionalMatchers и ArgumentMatchers

import static org.mockito.AdditionalMatchers.not;
import static org.mockito.ArgumentMatchers.eq;

//anything but not "ejb"    
mock.someMethod(not(eq("ejb")));

Според неговата документация:

Пример за използване на логически съвпадения and(), not() or():

//всичко, но не и "ejb"
mock.someMethod(not(eq("ejb")));

Има повече информация в този друг SO въпрос

Дано помогне

person troig    schedule 07.05.2015

Решението, което използвах:

import static org.hamcrest.CoreMatchers.not;
import static org.mockito.ArgumentMatchers.argThat;

// ...

argThat(not("ExceptionString"))

Версии

person Stephan    schedule 07.05.2015