"EasyMock.expectLastCall();" 在没有进一步调用生成的IExpectationSetters的情况下做任何事情?

WW.*_*WW. 6 easymock void

请考虑以下代码段: -

Whatever mock = EasyMock.createMock( Whatever.class );
mock.doSomething();
EasyMock.expectLastCall();   // <- Does this do anything?
EasyMock.replay( whatever );
Run Code Online (Sandbox Code Playgroud)

难道expectLastCall()这里实际上做什么吗?在我的测试中添加或删除此行似乎没有任何区别.

显然,如果你在呼叫中添加.andThrow.atLeastOnce()等等,它会很有用.这不是我要问的问题.

Jon*_*eet 6

不,您通常只expectLastCall()在需要结果来指定行为时使用.这是它的目的.

当然,如果您发现它使您的测试更具可读性,那么调用它并没有坏处.例如,我可能会这样做是为了保持一致性 - 如果我必须调用它两次以指定更多行为,即使我不需要,我也可能第三次包含它.我可能会明确地添加默认行为,只是为了增加一致性.