JUnit EasyMock意外的方法调用预期1实际0

时间:2013-05-28 16:45:48

标签: java junit easymock

我有一个问题,JUnit测试一个方法。我使用EasyMock.createMock来模拟someDao。 我仍然得到easymock unexpected method call expected 1 actual 0 someDato.findByCriteria(criteria, -1, -1) 这就是代码的样子(它只是草稿)。 我怀疑问题出在criteria对象中。 错误点为return someDato.findByCriteria(criteria, -1, -1);

@Test
public void findDataSericeTest(){
    DetachedCriteria criteria = DetachedCriteria.forClass(SomeClass.class);
    criteria.add(Restictions.eq("sth1",string1));
    criteria.add(Restictions.eq("sth2",string2));

    expect(someDato.findByCriteria(criteria, -1, -1)).andReturn(SomeClass);
    replay(someDao);
    serviceTested.findDataService("string1","string2");

    EasyMock.verify(someDao);

}

 public SomeClass findDataService(String string1, String string2){
    DetachedCriteria criteria = DetachedCriteria.forClass(SomeClass.class);
    criteria.add(Restictions.eq("sth1",string1));
    criteria.add(Restictions.eq("sth2",string2));

    return someDato.findByCriteria(criteria, -1, -1);
}

有什么想法吗?

1 个答案:

答案 0 :(得分:1)

我敢打赌DetachedCriteria没有实现/覆盖equalshashcode。验证将使用期望参数的equals方法来查看它是否与传递的实际参数匹配。