2012-02-15 37 views
8

我想更好地理解EasyMock,並使用它我提出了這個問題。在EasyMock中設置負面期望

我想要做的是對對象設置一個負面期望,以檢查測試過程中是否調用某個方法(驗證這些初始期望時)。

我知道驗證的默認行爲是檢查兩種情況:您的期望得到滿足,並且沒有執行其他調用;但是在測試中沒有記錄某個方法沒有被調用,換句話說,如果你對這個方法設定了期望並且它沒有被調用,你的測試將會失敗(確認你的實現正常運行!) 。

有沒有使用EasyMock來設置的方法?我在文檔中找不到任何東西。

感謝您的關注,並提前爲您提供幫助!

回答

11

方式EasyMock的工作原理是這樣的:

  1. 創建界面模擬對象,你想模仿,
  2. 記錄預期的行爲,並
  3. 開關Mock對象重播狀態。

就像如果你沒有設置任何期望如下:

mock = createMock(YourInterface.class); // 1 
// 2 (we do not expect anything) 
replay(mock); // 3 

那麼就意味着,如果ClassUnderTest調用任何接口的方法,Mock對象將拋出一個AssertionError這樣的:

java.lang.AssertionError: 
    Unexpected method call yourMethodWhichYouDidNotExpectToBeCalled(): 

這本身就是負面的期望檢查。