web-dev-qa-db-ja.com

Mockito:1つを除くすべての文字列に一致します

特定の文字列以外の文字列に一致するMockitoを使用してマッチャーを作成するにはどうすればよいですか?

いくつかのハムクレストマッチャーを使用して他のマッチャーを無効にして結合しようとしましたが、ハムクレストマッチャーはすべてタイプMatcher<T>の値を返し、Mockitoマッチャーではうまく機能しません。

10
Stephan

私が使用したソリューション:

argThat(not("ExceptionString"))

argThatがMockitoマッチャーである場合、
そしてnotはハムクレストマッチャーです

14
Stephan

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()、または()マッチャーの使用例:

//「ejb」以外のもの
mock.someMethod(not(eq( "ejb")));

この他の情報がもっとあります SO質問

それが役に立てば幸い

11
troig