【问题标题】:mockito, wanted but not invokedmockito,想要但没有被调用
【发布时间】:2017-06-16 10:42:07
【问题描述】:

我有问题。 我用 mockito 创建对象。然后我对方法进行验证,在运行测试时,它给了我想要但没有被调用的错误。并且服务保持为 ()。

@Test
    public void recordTest() throws IOException, URISyntaxException
    {

    URL resourceUrl = getClass().getResource(F1);
    Path resourcePath = Paths.get(resourceUrl.toURI());

    Object object = new Object ();
    when(objectServiceMock.getObjectByNem((Nem) anyObject())).thenReturn(object);

    Page<HorvarATPF> pageHorvar = new Page<HorvarATPF>();
    when(horvarATPFServiceMock.getHorvarATPFs((FilterHorvarATPF) anyObject())).thenReturn(pageHorvar);

    horvarATUtilService.record(resourcePath.toFile());

    verify(objectServiceMock, times(1596)).getObjectByNem((Nem) anyObject());

}

测试未按照验证运行,未调用通缉购买。

【问题讨论】:

  • 你确定你的方法被调用准确 1596次吗?
  • 是的,我有时会更改此设置,但问题仍然存在。

标签: java junit mockito


【解决方案1】:

问题是

verify(objectServiceMock, times(1596)).getObjectByNem((Nem) anyObject())

Mockito 期望您调用此方法 1596 次。

但你声明它只调用一次。

when(objectServiceMock.getObjectByNem((Nem) anyObject()).

修复测试只是把

verify(objectServiceMock).getObjectByNem((Nem) anyObject());

verify(objectServiceMock, times(1)).getObjectByNem((Nem) anyObject())

这是来自 mockito 文档Verifying exact number of invocations / at least x / never的示例

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多