【问题标题】:Assert times of expectLastCall断言 expectLastCall 的时间
【发布时间】:2014-01-07 07:00:21
【问题描述】:

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

【问题讨论】:

    标签: java junit testng easymock


    【解决方案1】:

    如果我理解正确,您希望您的测试在您预期调用 100 次时失败,但它只发生一次。

    从您发布的代码来看,您似乎没有调用EasyMock.verify()。这就是让 EasyMock 对照实际发生的情况检查您设置的所有期望的原因。

    Service service = EasyMock.createMock(Service.class);
    service.applyInitialDump(entities);
    EasyMock.expectLastCall().times(100);
    
    processor.processInitialDump(entities)
    EasyMock.verify(service);
    

    这之前有效,因为预计调用至少一次,因此代码运行良好。添加验证后,将引发断言错误,警告未发生预期调用。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2013-06-01
      • 2021-09-13
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-01-07
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多