我使用RhinoMocks進行一個非常簡單的測試(我必須說我是初學者)。我試圖嘲弄我的對象這樣如何繞過RhinoMocks模擬中的方法執行?
var mock = MockRepository.GenerateMock<MyClass>();
創建一個幫助存根:
var stubLinkedObject = MockRepository.GenerateStub<MyClass>();
然後執行一些邏輯應該與我的存根參數調用該方法的類MyClass
的AddLink
。在測試結束時,我簡單地斷言,這種方法實際上是調用
mockAction.AssertWasCalled(a => a.AddLink(stubLinkedObject));
我注入了正確的依賴和方法實際上是調用。但是,問題在於MyClass
中的real實現被調用並導致崩潰,因爲某些邏輯不能執行(鏈接集合不可用等)。我怎樣才能繞過執行並簡單地檢查一個方法是否被調用?我試過類似的東西
mockAction.Stub(a => a.AddLink(null)).IgnoreArguments().Do(null);
在我進入執行前,但這似乎並沒有工作(我只有一些例外)。任何想法和可能解釋爲什麼模擬執行方法邏輯呢?
你的方法AddLink是虛擬的嗎? – 2010-02-08 09:19:49
不,它不是,可能是這個問題:) – 2010-02-08 13:41:35
我很困惑。通常情況下,應該有一個被測試類的對象實例沒有被模擬/存根。你似乎只有嘲笑和存根。模擬和存根僅用於在測試過程中需要控制的協作者對象。 – 2010-02-08 15:53:41