在重构一些旧的单元测试时,我添加了一个verify()
调用来查看一个方法被预期的次数,并且惊讶地发现“预期”的调用比使用times()
. 出于某种原因,下一行的期望调用被添加到我的方法中。
为什么会这样?
测试班
public class SandBoxTest {
@Test
public void shouldGetSand() {
Sand niceMock = EasyMock.createNiceMock(Sand.class);
EasyMock.expect(niceMock.sandMethod()).andReturn(1).times(2);
EasyMock.expect(Box.boxMethod()).andReturn(99).times(11);
EasyMock.replay(niceMock);
EasyMock.verify(niceMock);
}
}
运行时输出
java.lang.AssertionError:
Expectation failure on verify:
Sand.sandMethod(): expected: 13, actual: 0
预期的输出
java.lang.AssertionError:
Expectation failure on verify:
Sand.sandMethod(): expected: 2, actual: 0
详细信息: EasyMock v3.1
跟进:使用 EasyMock 打开功能请求。https://jira.codehaus.org/browse/EASYMOCK-128