我是F#的新手,我打算創建新的F#項目,並使用Visual Studio 2008中的F#進行單元測試,但Visual Studio 2008單元測試嚮導沒有F#測試項目選項(只有C, C#和VB選項)。如何在Visual Studio 2008中測試F#代碼?
- 是否可以單元測試F#?
- 單元測試F#測試項目是否可能?
- 是否可以在Visual Studio 2008中使用F#測試項目對F#進行單元測試?
- 如何做到這一點,如果在Visual Studio 2008中沒有嚮導?
我是F#的新手,我打算創建新的F#項目,並使用Visual Studio 2008中的F#進行單元測試,但Visual Studio 2008單元測試嚮導沒有F#測試項目選項(只有C, C#和VB選項)。如何在Visual Studio 2008中測試F#代碼?
This link描述了使用帶F#的VS測試系統。你的工作方式與C#非常相似。
不利的一點是,顯然VS IDE不會自動提取它 - 我相信你需要使用mstest.exe從命令行運行。
編輯:哦,F#的另一件很酷的事情是FsCheck。這允許您編寫簡單的測試,並讓FsCheck系統嘗試通過隨機測試來反駁它們。
你問是否可以在F#中進行單元測試,或者你問是否有嚮導?可以用任何語言進行單元測試,事實上,函數式語言是單元測試人員夢寐以求的(我聽到過這樣描述)。因爲一切都是靜態的,並且你已經驗證了所有邊界情況,你已經基本驗證了每一種情況。
編輯:要回答第四個問題,自己寫測試用例:
我發現這篇文章對F#的測試與NUnit的(鏈接here)。但我記得還有另外一種方法可以驗證函數式語言代碼的有效性(我與Clean一起工作過,與我的單身漢類似於Haskell)。只是不記得他們稱之爲什麼,我記得它更像是一個數學證明。 另外,我不確定它是否適用於F#,因爲如果我正確讀取它,它與Haskell'esque語言有點不同。
沒有什麼東西強迫你使用F#來測試F#。您可以簡單地使用C#,VB或其他.NET支持的語言創建單元測試程序集,並簡單地引用執行測試所需的F#程序集。你可以這樣做,就像你爲其他.NET程序集創建單元測試一樣。
好吧,我並不需要它,但我想它。 – 2009-02-08 20:37:13
除了從C#創建F#類型可以是極其痛苦的,除非F#代碼的目的是成爲一個不錯的.NET OO類。 – MichaelGG 2009-02-09 18:36:34
我加了4個問題,請認準 – 2009-02-08 20:23:13