是什么这之间的区别:EasyMock.expect(...)。times(...)与使用EasyMock.expect(...)几次之间的区别?
ResultSet set = EasyMock.createNiceMock(ResultSet.class);
EasyMock.expect(set.getInt("col1")).andReturn(1);
EasyMock.expect(set.wasNull()).andReturn(false);
EasyMock.expect(set.getInt("col2")).andReturn(2);
EasyMock.expect(set.wasNull()).andReturn(false);
EasyMock.replay(set);
assertEquals(1, set.getInt("col1"));
assertEquals(false, set.wasNull());
assertEquals(2, set.getInt("col2"));
assertEquals(false, set.wasNull());
这:
ResultSet set = EasyMock.createNiceMock(ResultSet.class);
EasyMock.expect(set.getInt("col1")).andReturn(1);
EasyMock.expect(set.getInt("col2")).andReturn(2);
EasyMock.expect(set.wasNull()).andReturn(false).times(2);
EasyMock.replay(set);
assertEquals(1, set.getInt("col1"));
assertEquals(false, set.wasNull());
assertEquals(2, set.getInt("col2"));
assertEquals(false, set.wasNull());
?
注意:这两组代码都是作为jUnit测试编译和运行成功的。另外请注意,这里使用的是一个“很好”的模拟。
所以你基本上说没有区别,真的吗?我知道如果它改为严格,那就很重要。 – daveslab
成功的验证方面没有什么区别,因为一个很好的模拟 - 但是,可读性/可写性方面的差异。考虑时间(42)。正如@Andrzej指出的那样,有时您可能希望调用的数量是一个变量。 –