2011-06-15 174 views
1

我目前正在嘗試學習如何使用easymock。我有以下代碼:EasyMock返回奇怪值

List list = EasyMock.createMock(List.class); 
EasyMock.expect(list.size()).andReturn(0); 
EasyMock.replay(list); 
EasyMock.verify(list); 

這對我來說,至少應該工作 - 一個列表與什麼也沒有初始化,大小應該返回0。我碰到下面的錯誤,但是:

java.lang.AssertionError: 
Expectation failure on verify: 
size(): expected: 1, actual: 0 

我認爲這很奇怪,所以我將0中的0改爲1並重新測試。我得到了同樣的錯誤。有誰知道我做錯了什麼?提前致謝!

回答

6

replay之後和verify之前,您需要調用使用您的模擬的代碼。該代碼需要調用預期的方法(在這種情況下爲size),而只有該方法。這個錯誤信息意味着你將模擬設置爲期望一個方法調用,但是當你去驗證時,你從來沒有在模擬上調用該方法,這是有道理的,因爲你從來沒有使用模擬。

+0

是的,你說得對。我在閱讀的教程中錯過了愚蠢的初學者錯誤。謝謝! – 2011-06-15 23:16:35

+0

@dorrene,np,這就是爲什麼存在。 – hvgotcodes 2011-06-15 23:18:27