我正在尝试在带有 EasyMock 的 JUnit 中设置测试,但遇到了一个小问题,我似乎无法解决这个问题。我希望这里有人可以提供帮助。
这是我要测试的方法的简化版本:
public void myMethod() {
//(...)
Obj myObj = this.service.getObj(param);
if (myObj.getExtId() != null) {
OtherObj otherObj = new OtherObj();
otherObj.setId(myObj.getExtId());
this.dao.insert(otherObj);
}
//(...)
}
好的,所以使用 EasyMock 我已经模拟了service.getObj(myObj)
通话并且效果很好。
当 JUnitdao.insert(otherObj
调用 ) 时,我的问题就出现了。EasyMock*Unexpected Method Call*
在上面抛出一个。
我不介意在我的测试中嘲笑那个 dao 并使用expectLastCall().once();
它,但假设我有一个句柄,它在插入时作为参数传递......我当然不这样做,因为它是有条件的在被测试的方法的上下文中创建。
任何人都必须处理这个问题并以某种方式解决它?
谢谢。