我在试着做个测试,我有这个
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;但我需要改变这一点
EasyMock.expect(analysis.request()).andReturn(request).anyTimes();类似于下面这样的东西
EasyMock.expect(request.entryValue("field")).andReturn(message).anyTimes();但我找不到办法让它工作。
发布于 2018-11-23 02:28:21
读你的问题,我不明白你是不是漏掉了几行。"anyTimes()“一行中的语法是正确的,但是Easymock不是这样工作的。它应该在单元测试中使用。
阶段0。将模拟对象插入/设置到要测试的服务/对象中。
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中返回的值。
https://stackoverflow.com/questions/53434152
复制相似问题