【问题标题】:Mockito InvalidUseOfMatchersException despite using only matchers (and hint seems to mention wrong number of parameters)Mockito InvalidUseOfMatchersException 尽管只使用了匹配器(并且提示似乎提到了错误的参数数量)
【发布时间】:2020-10-23 11:24:57
【问题描述】:

我遇到了众所周知的 InvalidUseOfMatchersException,尽管我正在使用所有匹配器。

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() 时,为什么它只“记录”其中的 2 个?

自我回答,因为错误误导了我。 (或者,也许有人可以解释为什么它实际上是准确的。)

【问题讨论】:

    标签: exception mockito matcher


    【解决方案1】:

    原来是因为我的第三个参数portcullisUtils 中的一个变量是我忘记为getAdAccountRoleId(...) 存根的模拟对象。

    我想程序无法真正说明我当然不是故意要匹配这样的抽象,并且做了一些奇怪的事情。

    将接受任何人的回答可以解释这些特定错误消息的原因。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2019-09-06
      • 1970-01-01
      • 2018-06-12
      • 1970-01-01
      • 1970-01-01
      • 2019-05-23
      • 2018-03-29
      相关资源
      最近更新 更多