我是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