我希望能夠使用MSpec或其他BDD/TDD框架來測試針對.net微框架的代碼。不幸的是,從非MF組件中引用MF(微框架)組件是不可能的。這是一個恥辱,因爲它只是C#代碼和單元測試在這種情況下非常有用。有沒有人爲.net微框架項目制定過單元測試(最好是MSpec)?是否可以使用MSpec來測試.net微框架項目?
回答
我下載了最新的Machine.Specifications,並將所有代碼移入Micro Framework類庫項目中。我只有323個編譯錯誤。事物的短名單,將需要改變......
- 沒有擴展方法
- 沒有泛型
- 沒有LINQ
- 沒有自定義屬性
- 沒有表達式樹
是否值得在這個.NET Framework系列上重建MSpec?可能不會。這是作者/提交者想要跟上的事情嗎?可能不會。
我嘗試定製基於此goofy forum thread項目類型GUID和CSHARP進口和結束了一堆錯誤。包括「unsupported by the compiler error」。
錯誤4 TestableMicroLibrary.Tests d:\ TestableMicroLibrary \ TestableMicroLibrary.Tests \ MMP 0x81010009
我認爲你將不得不推出自己的。對測試類/方法使用約定和反射(剩下的唯一東西)。您可以繼續使用行爲驅動樣式,如test case class per fixture。
public class When_doing_something_neat
{
public void It_should_frob_the_widget()
{
Assert.IsTrue(_widget.IsFrobbed);
}
}
並重建整個斷言/應該庫(記住,沒有擴展方法!)。
public static class Assert
{
public static void IsTrue(bool thing)
{
if(!thing) throw new AssertionException("It is not true");
}
}
另一種選擇 - 這是一個有點痛,可能不適合 - 是創建一個虛擬沿着側microframework一個「正常」 .NET3.5/.Net4.0項目。由於微框架C#幾乎都是源代碼兼容的,您可以將源文件也添加到虛擬項目中 - 即源文件將屬於兩個項目。然後,使用#IFDEFS將需要一些最低限度的條件編譯,例如圍繞Microsoft.Spot命名空間包含。
在這一點上,虛擬項目完全可以用任何正常的測試框架NUinit,Specflow等來測試。顯然,這種方法需要一定程度的謹慎和注意 - 注意主機字節順序問題等,當然這兩個項目都必須保持並行。
另一種選擇是通過模擬器項目進行測試,這將是更徹底的方法。然而,虛擬項目的方法當然可以有利於WRT快速發展,TDD等。
- 1. 是否可以使用MSpec創建數據驅動的測試?
- 2. 是否可以在單個項目中進行MSpec和NUnit測試?
- 3. .NET是否有任何框架來填充測試數據?
- 4. 是否可以使用微型基準測試框架來只記錄一些語句?
- 5. 是否可以在一個項目中使用MVVMLight框架來定位.NetStandard 1.4?
- 6. 是否可以在Perl項目中使用自動測試?
- 7. MSpec測試可以改進嗎?
- 8. Xcode:測試框架是否鏈接到項目
- 9. 是否有人在Visual Studio 2010中使用.NET微型框架?
- 10. 是否可以在.net框架中使用<%:3.5
- 11. 獲取微軟測試框架使用Spring.Net創建測試類
- 12. 您是否需要.NET 1.0框架來定位.NET 1.0框架?
- 13. qtreeview測試是否可檢查項目
- 14. 如何從完整的.Net框架測試項目引用ASP.NET Core項目?
- 15. 在同一個項目中使用單元測試框架是否安全?
- 16. 是否可以對AppHarbor測試項目應用配置轉換?
- 17. 微軟測試框架測量時間
- 18. .NET測試框架建議
- 19. C#.NET 4.0測試框架?
- 20. 微軟Silverlight單元測試框架可以注入JavaScript文件到測試頁
- 21. 是否可以使用WebMock進行機架測試?
- 22. 是否可以使用組內測試
- 23. 是否可以在VS2008中調試VS2010 .NET 4.0項目?
- 24. 新的.NET項目的推薦單元測試框架
- 25. 我可以使用Visual Studio社區版來測試項目嗎?
- 26. 引用來自非測試項目的單元測試框架屬性
- 27. 是否可以在框架中加載GWT項目?
- 28. 是否可以將第三方框架與JHipster項目集成?
- 29. 是否可以使用ipod touch來測試iPhone應用程序?
- 30. .net項目是否可以發現並使用WCF服務?
這是一個相當全面的答案,謝謝你。 –