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

Ste*_*han 10 java string junit matcher mockito

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

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

Ste*_*han 14

我使用的解决方案:

argThat(not("ExceptionString"))
Run Code Online (Sandbox Code Playgroud)

argThatMockito匹配器在哪里,
并且not是Hamcrest匹配器


tro*_*oig 11

只需指出Mockito您也可以使用AdditionalMatchersArgumentMatchers

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

//anything but not "ejb"    
mock.someMethod(not(eq("ejb")));
Run Code Online (Sandbox Code Playgroud)

根据其文件:

使用logical和(),not()或()匹配器的示例:

//什么都不是"ejb"
mock.someMethod(不是(eq("ejb")));

在这个其他SO问题中有更多信息

希望能帮助到你