我知道這是相當主觀的,但我潛入測試和學習嘲笑,我試圖找出我應該使用哪個框架。如果你可以請告訴我哪些是你推薦的,而且最重要的是爲什麼它比你用過的其他人好我會推薦你的。或者,如果有人知道我可以在哪裏進行並排比較,那將會有所幫助。尋找最好的開源Mocking框架.net
回答
Moq是最先進的。它使用.NET 3.5和C#3.0的所有功能。這將是有趣:
+1!我用過NMock,Rhino Mocks和Moq。 Moq在我看來是最好的一個 – 2009-04-30 16:29:34
我喜歡RhinoMocks,但它是我使用的唯一一個:}
這看起來很有希望: http://code.google.com/p/mocking-frameworks-compare/
我還使用RhinoMocks。我特別喜歡AAA(Arrange-Act-Assert)模式。 RhinoMocks可以輕鬆設置期望並使用此模式檢查它們。該語法使用lambdas和鏈接,非常適合LINQ。語法上的相似性有助於理解並允許代碼更緊湊。我對它的唯一問題,並不是很大,是爲了嘲笑一個方法,它需要是虛擬的。從某種意義上講,這很好,因爲它「迫使」你重構接口,但如果接口不是真的需要,這可能會很痛苦。它可以讓一些框架類變得更加困難。你可以通過將你的類方法標記爲虛擬的方式來解決這個問題,或者用框架類來創建一個你模擬的包裝器。我不認爲這些問題是RhinoMocks獨有的。
他們不是,Moq具有相同的「限制」,因爲一切都必須是抽象的,實現一個接口或具有虛擬成員。 – TheMissingLINQ 2009-04-30 16:30:15
我用NMock,並認爲這是非常好的。 http://www.nmock.org/
但是 - 這是我用過的唯一一個。
我已經使用Rhino.Mocks,Moq & NMock。我過去比較喜歡Moq。
我現在使用NSubstitute ...並且發現它的語法遠遠優於moq的語法,並且您不會通過權力犧牲任何東西。
我以前寫這樣的測試:
[Test]
public void SomeOtherTest()
{
//Arrange
var mock = new Mock<IFoo>();
var sut = new SystemUnderTest(mock.Object); //never liked doing it this way...
mock.Setup(m => x.Bar()).Returns("A whole bunch of ceremonial syntax..");
//Act
sut.DoSomething();
//Assert
mock.Verify(m => m.Baz()); //Baaaaah, more laaaaambdas
}
現在我在非λ-eryness陶醉
[Test]
public void NSubTest()
{
var mock = Substitute.For<IFoo>();
var sut = new SystemUnderTest(mock); //much nicer!
mock.Bar().Returns("Look ma! No lambdas!");
sut.DoSomething();
mock.Received().Baz();
}
最後點..其在github ...
您可能會發現Richard Banks'series of posts comparing mocking frameworks有用。
注意:在充分披露的利益,我的NSubstitute合着者所出非常良好的比較。:)
- 1. .net計時開源框架
- 2. 尋找MVC框架的好例子
- 3. 尋找適用於iPad的開源PDF格式的框架
- 4. 尋找一個.NET配置框架
- 5. 尋找資源學習「ExternalAccessory」框架(iOS)
- 6. ASP.NET移動框架(更好的開源)
- 7. 用於.NET的開源安全框架
- 8. 尋找最好的子
- 9. 開源.net/C#項目和框架?
- 10. 開源.NET桌面UI框架
- 11. 尋找良好的學習資源的前端開發人員.NET MVC
- 12. 用於醫療設備的.NET Mocking框架
- 13. 尋找GPUImage框架標頭
- 14. 尋找WPF MVVM框架
- 15. 尋找開源工具
- 16. 尋找Silverlight/.NET的技術和/或框架的完美摘要
- 17. 尋找webforms引擎的好資源?
- 18. 尋找學習ASP.NET MVC的好源碼
- 19. 尋找一個良好的跨平臺C++框架
- 20. 尋找數據驅動的安全框架.net
- 21. 爲django尋找一組好的開源社區圖書館
- 22. 尋找一些好的資源,開始使用Django
- 23. 尋找推薦的UI架構源碼
- 24. 哪些資源可以學習Rhino Mocking框架?
- 25. 尋找最好的if語句結構
- 26. 尋找最好的Asp.net調查申請
- 27. 我尋找最好的方式與PHP
- 28. 尋找數組中最好的人
- 29. 在.NET中使用TWAIN - 尋找資源
- 30. 尋找桌面和移動應用程序開發的框架
對於那些仍然運行這個 - 也可能要考慮哪些這些框架具有automocking擴展 - 例如,AutoFac和AutoFixture都支持Moq,我相信這兩個都支持其他一些嘲諷框架(Rhino,NSubstitute等)。花一些時間在包管理器中查看它們的流行程度以及最近在做出選擇時最近更新的時間。 – LightCC 2017-09-03 02:12:42