2009-11-24 47 views
2

任何人都可以向我解釋如何驗證嘲笑,如果你沒有他們的Moq包裝? MockFactory.Verify()不會。我希望能夠明確驗證嘲笑,並應該使用mockfactory創建嘲笑!請發送您的意見。如果你沒有Moq包裝,你可以驗證一個模擬對象嗎?

+0

給你想要的關鍵步驟,一個小樣本做。他們會嚴格嗎? 「不會做」是什麼意思?爲什麼它不夠?或者它不適合你?是否VerifyAll有更多使用? – 2009-11-24 13:34:55

+0

當使用MocksFactory實現模擬時,我已經實現了其中的一部分,以便可選地使用布爾參數來指定是否將驗證添加到某些方法的設置中,這會在調用mockFactory.Verify()時導致驗證發生。我認爲,如果我們在單元測試中直接在模擬對象上使用驗證方法,而不是使用mockFactory,那麼閱讀單元測試更容易理解。我想知道如何做到這一點?任何幫助? – 2009-11-25 04:19:18

回答

4

如果您使用工廠創建您的模擬,並不意味着您必須使用它來驗證它們。有時候我只用工廠設置MockBehavior在一個地方爲我所有的嘲笑。但我仍然單獨驗證我的一些模擬。

var factory = new MockFactory(MockBehavior.Strict); 
var fooMock = factory.Create<IFoo>(); 

fooMock.Setup(foo => foo.Bar()); 

fooMock.Verify(foo => foo.Bar, Times.Once()); 

更新 在情況下,如果你只有在您的測試方法嘲笑的對象,就可以得到模擬包裝背面是這樣的:

IFoo foo = fooMock.Object; 

//... 

var fooMockAgain = Mock.Get(foo); 
+0

其實我有一個類,其中函數被寫入使用mockfactory創建所需的模擬以及設置。這些函數只返回真實的對象,即mockedthing.object 因此,在主函數中,我只是調用這些函數來創建虛擬對象。所以在這裏我似乎只能使用mockfactory進行驗證。我想知道是否有其他方法。 – 2009-11-26 04:09:14

+0

我更新了答案。 – 2009-11-26 06:25:11

相關問題