如何使用匹配除特定字符串之外的任何字符串的Mockito编写匹配器?
我尝试使用一些hamcrest匹配器来否定和组合其他匹配器,但是hamcrest匹配所有类型Matcher<T>
的返回值,这些值与Mockito匹配器不能很好地协同工作。
答案 0 :(得分:12)
我使用的解决方案:
argThat(not("ExceptionString"))
argThat
是Mockito匹配器的地方,
而not
是一个Hamcrest Matcher
答案 1 :(得分:9)
只需指出Mockito
,您也可以使用AdditionalMatchers和ArgumentMatchers
import static org.mockito.AdditionalMatchers.not;
import static org.mockito.ArgumentMatchers.eq;
//anything but not "ejb"
mock.someMethod(not(eq("ejb")));
根据其文件:
使用逻辑和(),非()或()匹配器的示例:
//什么都没有&#34; ejb&#34;
mock.someMethod(未(当量(&#34; EJB&#34)));
此其他SO question
中有更多信息希望有所帮助