代码之家  ›  专栏  ›  技术社区  ›  Jader Dias

如何在Visual Studio 2008中对F#代码进行单元测试?

  •  4
  • Jader Dias  · 技术社区  · 16 年前

    我是F#新手,我打算创建新的F#项目,并在Visual Studio 2008中用F#对其进行单元测试,但Visual Studio 2008单元测试向导没有F#测试项目选项(只有C、C#和VB选项)。

    1. 是否可以对F#进行单元测试?
    2. 是否可以使用F#测试项目对F#进行单元测试?
    3. 是否可以在Visual Studio 2008中使用F#测试项目对F#进行单元测试?
    4. 如果Visual Studio 2008中没有向导,该如何操作?
    6 回复  |  直到 16 年前
        1
  •  4
  •   MichaelGG    16 年前

    This link 描述了使用F#的VS测试系统。你做这件事的方式几乎和C#一样。

    缺点是VS IDE显然不会自动接收它——我认为你需要使用以下命令行运行 mstest.exe .

    编辑:哦,F#的另一件很酷的事情是 FsCheck 。这允许您编写简单的测试,并让FsCheck系统尝试通过随机测试来反驳它们。

        2
  •  4
  •   Erik van Brakel scottrakes    16 年前

    我发现了这篇关于使用nunit进行f#测试的文章(链接 here ).然而,我确实记得还有另一种方法可以验证函数式语言代码的有效性(我“使用”了Clean,它类似于我的学士学位Haskell)。只是不记得他们到底叫它什么,我记得它更像是一个数学证明。 此外,我不确定它是否适用于F#,因为如果我正确阅读的话,它与Haskell式语言有点不同。

        3
  •  4
  •   plinth    16 年前
    1. 如果你正在生成。NET代码,可以使用nunit对F#进行单元测试,只要接口合理地符合CLI。
    2. Nunit与之合作。NET程序集,不使用任何特定语言。如果你可以删除类上的[TestFixture]属性,也可以删除特定类中公共方法上的[Test]属性,该属性返回void,那么NUnit就可以运行它。
    3. 不知道。
    4. 不知道。
        4
  •  3
  •   David Morton    16 年前

    没有什么强迫你使用F#来测试F#。您可以简单地用C#、VB或其他语言创建单元测试程序集。NET支持的语言,只需引用执行测试所需的F#程序集。您可以像为其他任何对象创建单元测试一样进行此操作。NET程序集。

        5
  •  3
  •   Benjol    16 年前

    我不确定这是否与你的确切问题严格相关,但Matthew Podwysocki的博客上有一系列关于函数式语言单元测试的帖子,其中也有一些F#位。

        6
  •  2
  •   Spencer Ruport    16 年前

    你是在问是否可以用F#进行单元测试,还是在问是否有向导?可以用任何语言进行单元测试,事实上,函数式语言是单元测试人员的梦想(我听说是这样描述的),因为一切都是静态的,你已经验证了所有边缘情况,你基本上验证了每种情况。

    编辑:要回答第四个问题,请编写自己的测试用例:

    http://en.wikipedia.org/wiki/Unit_testing