【发布时间】:2011-01-08 00:01:09
【问题描述】:
我正在尝试使用 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) 调用,效果很好。
当 JUnit 调用 dao.insert(otherObj) 时,我的问题就出现了。 EasyMock 会在上面抛出一个*Unexpected Method Call*。
我不介意在我的测试中嘲笑该 dao 并在其上使用 expectLastCall().once();,但这假设我在插入时作为参数传递的“otherObj”上有句柄......
我当然不会,因为它是在被测试方法的上下文中有条件地创建的。
有没有人曾经处理过这个问题并以某种方式解决了它?
谢谢。
【问题讨论】:
标签: junit methods call easymock