当前位置: 首页 > 知识库问答 >
问题:

Mockito验证不匹配多个存根

郎建章
2023-03-14

看起来,当我这样使用thenReturn时:

当(abc.call())。然后返回(a)。然后返回(b),

我期望:

验证(abc,次(2))。调用()

相反,该方法似乎只被调用了一次,我有点困惑(我的测试工作如预期的那样,mock似乎返回了我预期的值),但对于调用次数,我不知道我是否得到了错误的结果,或者这是Mockito的预期行为?

共有1个答案

何楷
2023-03-14

当()正在模拟必须产生特定返回类型的abc.call()方法时。如果该方法被调用一次,它也将返回一次值,因此方法调用的存根只完成一次,因此验证只识别一次调用

您需要自定义函数,以便存根(abc.call())被多次调用。

您可以按照此线程实现多个存根

 类似资料:
  • 我有一个GWT应用程序,我从文本框中获取输入,检查正则表达式的值,如果匹配,然后我将该文本添加到表格中。当我为例如“你好”输入任何正确的输入时,它工作得非常好。 任何帮助都将不胜感激。

  • 问题内容: 在 BundleProcessorTest.java 的以下两个测试用例中,尽管我的第一个测试用例成功通过,但我低于异常。 org.mockito.exceptions.misusing.InvalidUseOfMatchersException:在此处检测到放错位置的参数匹配器: ->在bundle.test.BundleProcessorTest.bundlePluginShoul

  • 我正在尝试测试,只有在调用case的情况下,否则不会调用该方法。 但这会调用我的,并在内抛出空指针。因为我的行为不会调用,所以我如何在不调用的情况下测试它。

  • 我试图模拟Spring Rest的方法。 在同一个测试中,我有多个调用,它们的不同之处在于返回类型。 mock不考虑的泛型参数,最后定义的mock胜过前者。 有什么办法能让它起作用吗?

  • 我正在使用ssl连接从flask应用程序连接到远程mysql数据库(在我的本地网络上)。 任何对数据库的调用都会抛出这个神秘的错误。 我可以从终端登录mysql监视器。 我使用的是macos 11.0。1和python 3.9。0.我已尝试按此处所述安装和链接。没有ssl,一切正常。请帮忙。 编辑:这个问题不是macos特有的,我试着从ubuntu连接,结果也是一样的。

  • 如何精确匹配img标记的多个实例?我读了一些关于preg_match的教程,但从未真正理解。 我以此为基础: 我做了一个小的像正则表达式: 在这之后,我就卡住了。我如何继续匹配所有直到两个字符串的末尾? 我在PHP网站上发现了数组部分: 使用我的代码,我如何获得图像URL和alt标签? 谢谢