首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >用EasyMock进行Java测试

用EasyMock进行Java测试
EN

Stack Overflow用户
提问于 2018-11-22 23:29:51
回答 1查看 128关注 0票数 0

我在试着做个测试,我有这个

代码语言:javascript
复制
Analysis analysis = EasyMock.createMock(Analysis.class);
Request request = EasyMock.createMock(Request.class);
EasyMock.expect(analysis.request()).andReturn(request).anyTimes();
EasyMock.replay(request);
EasyMock.replay(analysis);
return analysis;

但我需要改变这一点

代码语言:javascript
复制
EasyMock.expect(analysis.request()).andReturn(request).anyTimes();

类似于下面这样的东西

代码语言:javascript
复制
EasyMock.expect(request.entryValue("field")).andReturn(message).anyTimes();

但我找不到办法让它工作。

EN

回答 1

Stack Overflow用户

发布于 2018-11-23 02:28:21

读你的问题,我不明白你是不是漏掉了几行。"anyTimes()“一行中的语法是正确的,但是Easymock不是这样工作的。它应该在单元测试中使用。

阶段0。将模拟对象插入/设置到要测试的服务/对象中。

代码语言:javascript
复制
public final IMocksControl mockControl = createStrictControl();
@Before
public void setup() {
    boxStatusRepoMock = mockControl.createMock(BoxStatusRepo.class);
    boxRepoMock = mockControl.createMock(BoxRepo.class);

    ReflectionTestUtils.setField(boxService, "boxStatusRepo", boxStatusRepoMock);
    ReflectionTestUtils.setField(boxService, "boxRepo", boxRepoMock);
}

阶段1-6中的所有其他代码都将被放入带有注释@Test的方法中

阶段1.准备要由模拟方法返回的数据

阶段2.列出模拟对象的预期调用。数字和顺序很重要。

阶段3.调用mockControl.replay();

阶段4.调用某个服务方法-使用它们的方法调用mock的方法(在阶段0中设置它们)。服务本身不能是mock。

阶段5.调用mockControl.verify();

阶段6。您可以选择检查阶段4中返回的值。

A tutorial on easymock

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

https://stackoverflow.com/questions/53434152

复制
相关文章

相似问题

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