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

时间:2015-05-07 17:02:38

标签: java string junit mockito matcher

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

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

2 个答案:

答案 0 :(得分:12)

我使用的解决方案:

argThat(not("ExceptionString"))

argThat是Mockito匹配器的地方,
not是一个Hamcrest Matcher

答案 1 :(得分:9)

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

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

中有更多信息

希望有所帮助