任何人都可以向我解釋如何驗證嘲笑,如果你沒有他們的Moq包裝? MockFactory.Verify()
不會。我希望能夠明確驗證嘲笑,並應該使用mockfactory創建嘲笑!請發送您的意見。如果你沒有Moq包裝,你可以驗證一個模擬對象嗎?
2
A
回答
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
相關問題
- 1. 你可以沒有賦值給另一個對象嗎?
- 2. 你可以模擬一個實現接口和抽象類的對象嗎?
- 3. 你如何使用Moq模擬會話對象集合
- 4. 你會打擾模擬StreamReader對象嗎?
- 5. Java - 你可以有多少個對象?
- 6. 你可以讓一個對象「可調用」嗎?
- 7. 模擬器可以有唯一的設備ID嗎?你能用這個ID嗎?
- 8. Javascript - 你可以重用Date()對象嗎?
- 9. 你可以有一個對象內的對象?
- 10. Java - 你可以將一個對象轉換成它沒有擴展的類嗎?
- 11. 你可以在一個Using塊中處理多個對象嗎?
- 12. 當你聲明對象時,你可以調用一個類的方法嗎?
- 13. 你可以在一臺虛擬服務器上安裝docker嗎?
- 14. 你可以擴展一個果園模塊嗎?
- 15. Rails的:「你有一個零對象時,你沒想到吧」
- 16. 你可以有一個沒有.pm標籤的Perl類嗎?
- 17. 你可以通過兩層組件訪問一個對象嗎?
- 18. 你可以返回一個excel對象在Sub中使用嗎
- 19. 你可以在IronPython中設計一個.NET對象嗎?
- 20. 你可以迭代一個雄辯的對象的屬性嗎?
- 21. 你可以用Go「鎖定」一個對象嗎?
- 22. 你可以添加一個對象到C#監視器嗎?
- 23. 你可以將一個jaxb對象轉換爲org.w3c.dom.Element嗎?
- 24. 你可以有一個「強」類型的DataReader結果集嗎?
- 25. JMock模擬對象可以返回另一個模擬對象嗎?
- 26. 你可以創建一個沒有值的會話變量嗎?
- 27. Java模板包裝類,讓你修改對象一次
- 28. javascript/jquery有一個你可以創建的事件模型嗎?
- 29. Moq驗證對象參數
- 30. 你可以在沒有用戶驗證的情況下使用dropbox api嗎?
給你想要的關鍵步驟,一個小樣本做。他們會嚴格嗎? 「不會做」是什麼意思?爲什麼它不夠?或者它不適合你?是否VerifyAll有更多使用? – 2009-11-24 13:34:55
當使用MocksFactory實現模擬時,我已經實現了其中的一部分,以便可選地使用布爾參數來指定是否將驗證添加到某些方法的設置中,這會在調用mockFactory.Verify()時導致驗證發生。我認爲,如果我們在單元測試中直接在模擬對象上使用驗證方法,而不是使用mockFactory,那麼閱讀單元測試更容易理解。我想知道如何做到這一點?任何幫助? – 2009-11-25 04:19:18