gpt4 book ai didi

JUnit Easymock 意外方法调用

转载 作者:行者123 更新时间:2023-12-04 13:02:34 31 4
gpt4 key购买 nike

我正在尝试在带有 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 我 mock 了 service.getObj(myObj)打电话,效果很好。

当 JUnit 遇到 dao.insert(otherObj 时,我的问题就出现了) 称呼。 EasyMock 抛出 *Unexpected Method Call*在上面。

我不介意在我的测试中 mock 那个 dao 并使用 expectLastCall().once();在它上面,但是假设我在插入时作为参数传递的“otherObj”有一个句柄......
我当然不会,因为它是在被测试方法的上下文中有条件地创建的。

任何人都曾经不得不处理这个问题并以某种方式解决了它?

谢谢。

最佳答案

您也可以使用 EasyMock.isA(OtherObj.class)为了多一点类型安全。

关于JUnit Easymock 意外方法调用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2113816/

31 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com