2017-06-16 24 views
1

我遇到问题。 我用mockito创建对象。然后我做了方法的验证,在运行测试时,它给了我想要的错误但没有被调用。并且该服务保持为()。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()); 

} 

测试不符合验证的行,与通缉购买没有援引。

+4

例子你确定你的方法被调用*正是* 1596倍? – QBrute

+0

是的,我有时改变了这个,问题仍然存在。 – mantamusica

回答

2

的proble是

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