我不确定我所做的是否正确。 我想断言void方法调用的时间。 我的代码如下。 processor.processInitialDump将调用service.applyInitialDump。 我的问题是我给出的时间为100,仍然可以通过测试。我想断言通话时间。我能为这个问题做些什么?
Service service = EasyMock.createMock(Service.class);
service.applyInitialDump(entities);
EasyMock.expectLastCall().times(100);
processor.processInitialDump(entities)
顺便说一句:如果我的期望小于通话时间。 expectLastCall正常工作。将抛出异常。
Service service = EasyMock.createMock(Service.class);
service.applyInitialDump(entities);
EasyMock.expectLastCall().times(1);
processor.processInitialDump(entities)
processor.processInitialDump(entities)
答案 0 :(得分:3)
如果我理解正确,你希望你的测试在预期通话100次时失败,但只发生一次。
根据您发布的代码,您似乎并未致电EasyMock.verify()
。这就是让EasyMock根据实际情况检查所有期望的原因。
Service service = EasyMock.createMock(Service.class);
service.applyInitialDump(entities);
EasyMock.expectLastCall().times(100);
processor.processInitialDump(entities)
EasyMock.verify(service);
这之前有用,因为预期调用至少一次,所以代码运行正常。添加验证后,将发出断言错误,警告预期的呼叫不会发生。