mockito Junit使用eq()参数匹配器与直接传递字符串

piv4azn7  于 11个月前  发布在  其他
关注(0)|答案(1)|浏览(161)

eq()参数匹配器有什么用,如果直接传递字符串也会做同样的事情。
例如,

when(method.foo("test")).thenReturn("bar");

字符串
类似于

when(method.foo(ArgumentMatcher.eq("test"))).thenReturn("bar");

7nbnzgx9

7nbnzgx91#

ArgumentMatchers比eq()多。另一个流行的是any(),但还有更多的ArgumentMatchers。它们通常一起使用,以帮助识别测试用例的正确值。您可能不想检查所有测试中的所有参数。例如,如果代码中有更多的参数。
when(method.foo(eq("test"), any(Test.class), isNull()).thenReturn("bar");
我同意eq()看起来是多余的,但诀窍是如果一个参数使用了一个匹配器,所有的都必须,所以如果你想使用一个any(),你不能再只是放一个未 Package 的String参数。

相关问题