【发布时间】:2010-06-23 10:36:46
【问题描述】:
是否可以在同一模拟对象实例上重新定义特定期望?
假设我有这个验证 OK 的测试:
List<String> foo = createMock(List.class);
expect(foo.get(1)).andReturn("Wibble").once();
expect(foo.size()).andReturn(1).once();
replay(foo);
System.out.println(foo.get(1));
System.out.println(foo.size());
verify(foo);
然后我想做的是重置模拟,保持所有定义的期望,但改变其中一个,比如:
reset(foo);
// Redefine just one of the two expectations
expect(foo.get(1)).andReturn("Wobble").once();
System.out.println(foo.get(1));
System.out.println(foo.size());
verify(foo);
因为 foo.size 在 reset 调用之后没有定义,所以现在不起作用。
必须是一种很好的方式来做到这一点,而不是每次都重新建立期望?
提前致谢
【问题讨论】:
-
好问题...难道没有办法使用 EasyMock API 完成这项工作吗?