我正在使用依賴注入爲我的課程以外的代碼提供模擬測試。我發現自己一遍又一遍地寫了很多相同的代碼,因爲我需要模擬AuthProvider,ConfigurationManager等等,這些都在我想測試的方法中使用。該方法包含分支(if-then-else),因此我有多個測試來測試該方法的所有執行路徑。我正在多次實例化每個模擬(每種測試方法都有一次),但是想知道這是否是錯誤的方法? 此外,我對嘲笑和預設響應顯然主要是複製粘貼,因爲對每個方法調用AuthProvider.Authenticate()這樣的調用如何避免在單元測試中使用模擬代碼時出現重複代碼
在每種方法中,我設置了一個模擬存儲庫,並在每個方法的結尾我驗證模擬庫。我應該建立一些工廠來創造這些模擬,並設定他們的期望和回報價值,如果是這樣的話?
爲了實現mock我使用RhinoMocks。
「如果您不對模擬調用設置期望值,則像EasyMock這樣的記錄和重放框架會失敗。」 =>這是不正確的。包括EasyMock在內的所有模擬工具都允許開發人員具有「非嚴格」的期望。在EasyMock中,通過使用「createNiceMock()」方法創建一個「很好」的模擬來實現。 – 2009-08-12 21:58:16