Mockito: соответствует любой строке, кроме одной [дубликата]

Как я могу написать сопоставитель, используя Mockito, который соответствует любой строке, кроме определенной?

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


person Stephan    schedule 07.05.2015    source источник
comment
Используйте 1_. 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 и Сопоставление аргументов

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

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

Согласно его документации:

Пример использования логических сопоставлений and(), not() или():

//что угодно, только не "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