2013-04-15 35 views
0

我正在編寫一個圍繞void函數的單元測試。 在裏面我調用另一個函數。
我想測試這個函數只能調用一次。 如果它被調用0或2次,它應該失敗。用EasyMock聲明方法調用

我試過使用以下內容。但即使我從代碼中刪除函數調用,測試也不會失敗。

EasyMock.expectLastCall().once(); 
EasyMock.expectLastCall().atLeastOnce(); 
+0

如果你告訴它期望兩次調用該方法,會發生什麼? –

+1

你在測試結束時調用了verify()嗎?只有在驗證期間,EasyMock纔會檢查所有期望是否已經滿足。 –

+0

@Nizet我沒有。調用後驗證它失敗。非常感謝。 – shantanu

回答

0

這應該工作:(但你也可以省略EasyMock.expectLastCall().once()

I m = EasyMock.createMock(I.class); 
    m.meth(); 
    EasyMock.expectLastCall().once(); 
    EasyMock.replay(m); 


    m.meth(); 
    m.meth(); //fails 


    EasyMock.verify(m);