如果直接传递字符串会做同样的事情,eq()参数匹配器的用途是什么。
例如
的行为when(method.foo(“ test”))。thenReturn(“ bar”);
与
相似when(method.foo(ArgumentMatcher.eq(“ test”)))。thenReturn(“ bar”);
答案 0 :(得分:1)
ArgumentMatchers比eq()
多。另一个受欢迎的是any()
,但还有更多的ArgumentMatchers。它们通常一起使用,以帮助确定测试用例的正确值。您可能不想检查所有测试中的所有参数。例如,如果您的代码中包含更多参数。
when(method.foo(eq("test"), any(Test.class), isNull()).thenReturn("bar");
我同意eq()
似乎是多余的,但是诀窍在于,如果一个参数必须全部使用一个匹配器,那么如果您要使用一个any()
,则不能再将未包装的{{1 }}参数。