我想跳过验证调用中的一个参数检查。因此:
def allowMockitoVerify=Mockito.verify(msg,atLeastOnce()).handle(1st param,,3rd param)
我想跳过第二个参数的检查。我该怎么做呢?
vh0rcniy1#
不幸的是,Mockito不允许您混合和匹配原始值和匹配器(例如String和Matchers.any())但是,您可以使用eq()Matcher来匹配特定值,例如
Mockito.verify(msg, atLeastOnce()) .handle(eq("someValue"), any(Thing.class), eq("anotherValue"));
感谢这篇文章为这个Mockito: InvalidUseOfMatchersException提供了一个很好的例子
gijlo24d2#
您可以尝试Mockito.any(),这基本上意味着我们对该参数不感兴趣。
xwbd5t1u3#
我使用的是Mockito 3.9.0,因为你不能将匹配器和期望值混合,也就是说,你不能验证第一个参数是一个特定的字符串,比如test-profile,而第二个参数是任何值,所以你需要将所有的都转换成匹配器,所以你不能做类似这样的事情:
3.9.0
test-profile
verify(userAuthorizationService).authorizeRequest("test-profile", any());
相反,您需要将值转换为匹配器,例如:
verify(userAuthorizationService).authorizeRequest(matches("test-profile"), any());
请注意,matches和any是从org.mockito.ArgumentMatchers静态导入的
matches
any
org.mockito.ArgumentMatchers
3条答案
按热度按时间vh0rcniy1#
不幸的是,Mockito不允许您混合和匹配原始值和匹配器(例如String和Matchers.any())
但是,您可以使用eq()Matcher来匹配特定值,例如
感谢这篇文章为这个Mockito: InvalidUseOfMatchersException提供了一个很好的例子
gijlo24d2#
您可以尝试Mockito.any(),这基本上意味着我们对该参数不感兴趣。
xwbd5t1u3#
我使用的是Mockito
3.9.0
,因为你不能将匹配器和期望值混合,也就是说,你不能验证第一个参数是一个特定的字符串,比如test-profile
,而第二个参数是任何值,所以你需要将所有的都转换成匹配器,所以你不能做类似这样的事情:相反,您需要将值转换为匹配器,例如:
请注意,
matches
和any
是从org.mockito.ArgumentMatchers
静态导入的