首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >easymock,mock返回一个mock

easymock,mock返回一个mock
EN

Stack Overflow用户
提问于 2012-06-07 06:40:22
回答 1查看 376关注 0票数 2

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

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

代码语言:javascript
运行
复制
requestInfo = mupClient.newEnqueueRequestCall().call(requestArgs);

我嘲笑这一点的方式是:

代码语言:javascript
运行
复制
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, ...)

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2012-06-07 07:08:03

试试这个:

代码语言:javascript
运行
复制
expect(mupClient.newEnqueueRequestCall()).andReturn(enqueueRequestCall);
final Capture<EnqueueRequestArgs> captureRequestArgs = 
                          new Capture<EnqueueRequestArgs>();
expect(enqueueRequestCall.call(capture(captureRequestArgs))).
                          andThrow(new MUPCoralException("an exception"));

问题是你的enqueRequestCall应该返回requestInfo。只有当你从easymock调用replay方法后,mupClient才会返回enqueueRequestCall

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/10923337

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档