2012-05-22 44 views
5

考慮以下代碼片段: -「EasyMock.expectLastCall();」在沒有進一步調用IExpectationSetters的情況下做任何事情?

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

是否expectLastCall()這裏實際上做什麼嗎?從我的測試中添加或刪除此行似乎沒有任何區別。

很明顯,如果您將.andThrow.atLeastOnce()等添加到呼叫中,這很有用。這不是我所問的。

回答

5

不,您通常只在需要結果指定行爲時使用expectLastCall()。這是它的目的。

當然,如果您發現它使您的測試更具可讀性,它不會造成傷害。例如,我可能會這樣做的一致性 - 如果我已經調用它兩次以指定更多的行爲,即使我不需要,我可能會包括它第三次。我可能會明確添加默認行爲,只是爲了增加一致性。