代码之家  ›  专栏  ›  技术社区  ›  Dean Hiller

easymock返回null而不是我的值

  •  3
  • Dean Hiller  · 技术社区  · 10 年前

    我不确定为什么“metric”最终为空。我希望该方法始终为我的测试返回相同的值

        CountMetric countMetric = new CountMetricStub("count");
        expect(metricManager.getOrCreateCountMetric(anyObject(String.class))).andStubReturn(countMetric);
    
        CountMetric metric = metricManager.getOrCreateCountMetric("ASDF");
    
        assertNotNull(metric);
    

    知道我在这里做错了什么吗?

    谢谢 院长

    1 回复  |  直到 10 年前
        1
  •  3
  •   Dan Temple    10 年前

    你需要回放模拟

    CountMetric countMetric = new CountMetricStub("count");
    expect(metricManager.getOrCreateCountMetric(anyObject(String.class))).andStubReturn(countMetric);
    EasyMock.replay(metricManager); //Add this line
    
    CountMetric metric = metricManager.getOrCreateCountMetric("ASDF");
    
    assertNotNull(metric);
    

    目前 metricManager 仍处于记录模式,这意味着对其方法的任何调用都只执行默认行为。

    如果您有电话 EasyMock.verify() 也在那里(没有电话 replay() )EasyMock告诉您在记录模式下无法调用verify。