断言expectLastCall的时间

时间:2014-01-07 07:00:22

标签: java junit testng easymock

我不确定我所做的是否正确。 我想断言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)

1 个答案:

答案 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);

这之前有用,因为预期调用至少一次,所以代码运行正常。添加验证后,将发出断言错误,警告预期的呼叫不会发生。