Mockito:匹配除一个以外的任何字符串

Mockito: Match any String except one

我如何使用 Mockito 编写匹配除特定字符串以外的任何字符串的匹配器?

我已经尝试使用一些 hamcrest 匹配器来否定和组合其他匹配器,但是 hamcrest 匹配器所有 return 类型 Matcher<T> 的值都不能很好地与 Mockito 匹配器一起工作。

我使用的解决方案:

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

// ...

argThat(not("ExceptionString"))

版本

只要指出 Mockito 你也可以使用 AdditionalMatchers and ArgumentMatchers

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

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

根据其文档:

Example of using logical and(), not(), or() matchers:

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

其他SO question

中有更多信息

希望对您有所帮助