Mockito InvalidUseofMatcherException,尽管只使用了匹配器(提示似乎提到了错误的参数数量)
我遇到了一个众所周知的InvalidUseofMatchers异常,尽管我使用的是所有的matchersMockito InvalidUseofMatcherException,尽管只使用了匹配器(提示似乎提到了错误的参数数量),exception,mockito,matcher,Exception,Mockito,Matcher,我遇到了一个众所周知的InvalidUseofMatchers异常,尽管我使用的是所有的matchers org.mockito.exceptions.misusing.InvalidUseOfMatchersException: Invalid use of argument matchers! 3 matchers expected, 2 recorded: -> at com.spotify.adaccountservice.utils.RoleUtilsTest.test_add
org.mockito.exceptions.misusing.InvalidUseOfMatchersException:
Invalid use of argument matchers!
3 matchers expected, 2 recorded:
-> at com.spotify.adaccountservice.utils.RoleUtilsTest.test_addOrRemoveRole_AddUserToAdAccount(RoleUtilsTest.java:179)
-> at com.spotify.adaccountservice.utils.RoleUtilsTest.test_addOrRemoveRole_AddUserToAdAccount(RoleUtilsTest.java:180)
我知道我们不喜欢这里的代码截图,但我想让大家相信它确实发生在这些行号上:
下面是实际的方法:
所以这有点奇怪。当方法有4个参数时,为什么需要3个匹配器?为什么当我对所有这些都使用eq()
时,它只“记录”了其中的两个呢
自我回答,因为错误误导了我。(或者,也许有人可以解释为什么它实际上是准确的。)结果表明,这是因为我的第三个参数中的一个变量,
portcullisUtils
,是一个模拟对象,我忘记了为getAdAccountRoleId(…)
存根
我想程序真的说不出来,当然我不是有意反对这样的抽象,而是做了一些奇怪的事情
将接受任何能够解释这些特定错误消息原因的人的答案