Java JUnit EasyMock意外的方法调用应为1实际0
我对JUnit测试一种方法有问题。我使用EasyMock.createMock来模拟someDao。 我仍然得到Java JUnit EasyMock意外的方法调用应为1实际0,java,junit,easymock,Java,Junit,Easymock,我对JUnit测试一种方法有问题。我使用EasyMock.createMock来模拟someDao。 我仍然得到easymock意外的方法调用,预期1实际0 someDato.findByCriteria(条件,-1,-1) 这就是代码的样子(只是草稿)。 我怀疑问题出在标准对象中。 错误点行返回someDato.findByCriteria(criteria,-1,-1) 有什么想法吗?我打赌DetachedCriteria不会实现/覆盖equals和hashcode。验证将使用预期参数的eq
easymock意外的方法调用,预期1实际0 someDato.findByCriteria(条件,-1,-1)
这就是代码的样子(只是草稿)。
我怀疑问题出在标准
对象中。
错误点行返回someDato.findByCriteria(criteria,-1,-1)代码>
有什么想法吗?我打赌DetachedCriteria
不会实现/覆盖equals
和hashcode
。验证将使用预期参数的equals
方法来查看它是否与传递的实际参数匹配。我想使用expect(someDato.findByCriteria(isA(DetachedCriteria.class,isA(Integer.class),isA(Integer.class)).andReturn(SomeClass)
但是我在这行中得到了NullPointerException尝试isA(DetachedCriteria.class),eq(-1),eq(-1)
。如果在尝试后这不起作用,那么您是否尝试在DetachedCriteria
中实现equals
?不知道DetachedCriteria
是一个Hibernate类。查看javadocs,它似乎没有覆盖equals
,因此使用isA
以外的任何东西都是不可能的。您应该你可以很好地使用isA(DetachedCriteria.class),eq(-1),eq(-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);
}