使用easymock在for循环中调用模拟对象

时间:2012-07-23 23:59:08

标签: java unit-testing easymock

我使用Easymock.createNiceMock模拟了一个对象。

MYRepository mockedMyRepository = EasyMock.createNiceMock(MyRepositoryWrapper.class);

EasyMock.expect(mockedRepository.findList(Asset.class, criteria)).andReturn(statusTypeList);

在测试类中,我有一个for循环,我称之为findList方法。它在第一个循环中获取值,但从下一个循环返回null

即使没有循环,也只有一次它返回我指定的值。

System.out.println("first"+this.myRepository.findList(Asset.class).get(0)); \\ returns the correct value
System.out.println("second"+this.myRepository.findList(Asset.class).get(0)); \\ returns null

这里有什么解决方案? 感谢。

1 个答案:

答案 0 :(得分:2)

添加

.anyTimes()

到期望结束。所以你得到了

EasyMock.expect(mockedRepository.findList(Asset.class , criteria)).andReturn(statusTypeList).anyTimes();

否则,你隐含地说只期待一次。