gpt4 book ai didi

java - easymock,模拟返回模拟

转载 作者:行者123 更新时间:2023-11-30 11:44:07 25 4
gpt4 key购买 nike

我正在使用 EasyMock 测试我的 Java 代码。

我要模拟的代码片段如下所示:

requestInfo = mupClient.newEnqueueRequestCall().call(requestArgs);

我 mock 的方式是:

expect(mupClient.newEnqueueRequestCall()).andReturn(enqueueRequestCall);
final Capture<EnqueueRequestArgs> captureRequestArgs =
new Capture<EnqueueRequestArgs>();
expect(mupClient.newEnqueueRequestCall().call(capture(captureRequestArgs))).
andThrow(new MUPCoralException("an exception"));

但是 requestInfo 总是 null。即使我将 .andThrow() 部分更改为 .andReturn(new RequestInfo()),它仍然是 null

我检查了其他类似的帖子,但没有用。现在我可以对其发表评论并因此创建一个新问题。

回答:在 replay 中添加所有模拟对象!示例 replay(mockObj1, mockObj2, ...)

最佳答案

试试这个:

expect(mupClient.newEnqueueRequestCall()).andReturn(enqueueRequestCall);
final Capture<EnqueueRequestArgs> captureRequestArgs =
new Capture<EnqueueRequestArgs>();
expect(enqueueRequestCall.call(capture(captureRequestArgs))).
andThrow(new MUPCoralException("an exception"));

问题是您的enqueRequestCall 应该返回requestInfomupClient 将仅在您从 easymock 调用 replay 方法后返回 enqueueRequestCall

关于java - easymock,模拟返回模拟,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10923337/

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