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

2022-09-03 17:17:38

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

我尝试过使用一些hamcrest匹配器来否定和组合其他匹配器,但是hamcrest匹配器都返回的类型值,这些值与Mockito匹配器不太有效。Matcher<T>


答案 1

只需指出,您也可以使用Addrams和ArgumentMatchersMockito

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

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

根据其文档:

使用逻辑和()、not()或()匹配器的示例:

任何东西,但不是“ejb”
mock.someMethod(not(eq(“ejb”))));

在另一个SO问题中有更多信息

希望它有帮助


答案 2

我使用的解决方案:

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

// ...

argThat(not("ExceptionString"))

版本