我有一个问题,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);
}
有什么想法吗?
答案 0 :(得分:1)
我敢打赌DetachedCriteria
没有实现/覆盖equals
和hashcode
。验证将使用期望参数的equals
方法来查看它是否与传递的实际参数匹配。