2
我使用Moq的MockRepository.Of <>方法來模擬各種方法來測試。當我通過Where子句將多個方法設置鏈接在一起時,它會在模擬方法返回時起作用。這顯然是由於Where需要布爾表達式。你可以使用這種模式爲沒有返回變量的方法設置模擬嗎?Moq.MockRepository.Of()使用方法有void時返回
var mockRepository = new MockRepository(MockBehavior.Strict);
var debitCardBinManager = mockRepository.Of<IDebitCardBinManager>()
.Where(mgr => mgr.GetEffectiveDateBuffer() == 35)
.Where(mgr => mgr.AddAction(It.IsAny<DateTime>()))
.First();
從這個例子中可以設置GetEffectiveDateBuffer方法,因爲它會返回一個整數。然而,AddAction不能,因爲它有一個無效返回(編譯錯誤是不能將'void'轉換爲'bool')。然而我想要通過模式來設置它。有什麼建議麼?
謝謝。我確實需要嚴格的行爲並驗證該方法。所以看起來我必須使用MockRepository.Create方法併爲每個方法調用Setup。 – rmunson