我需要验证以下方法的行为:
public void saveRequestAndResponse(request, response, additionalInfo) {
// some processing with additionalInfo
dao.save(request);
dao.save(response);
}
在我的测试类中:
ArgumentCaptor<com.ws.Request> request = ArgumentCaptor.forClass(com.ws.Request.class);
Mockito.verify(dao, Mockito.times(1)).save(request.capture());
ArgumentCaptor<com.ws.Response> response = ArgumentCaptor.forClass(com.ws.Response.class);
Mockito.verify(dao, Mockito.times(1)).save(response.capture());
还有DAO方法:
@Transactional
Public <T> T save(final T it) {
saveOrUpdate(it);
}
收到的错误信息:
org.mockito.exceptions.verification.TooManyActualInvocations:
dao.save(<Capturing argument>);
Wanted 1 time:
-> at com.ws.testclass(TestClass.java:296)
But was 2 times:
-> at com.ws.mainclass.lambda$saveRequestAndResponse$78(MainClass.java:200)
-> at com.ws.mainclass.saveRequestAndResponse(MainClass.java:205)
我的DAO类中的save()方法使用了类型参数T。
如何验证对dao.save(type)方法的两次调用,其中type是不同的类型,例如Request和Response?
Mockito.verify(dao, Mockito.times(2)).save(Mockito.any());
。 - Marco