如何在MonoDevelop/.Net中自动生成单元测试



我希望在MonoDevelop/.Net.中自动生成单元测试

我尝试过NUnit,但它不会生成测试。在eclipse中,插件randoop可以做到这一点,但它的目标是Java和JUnit。

如何在MonoDevelop和/或for.Net中自动生成单元测试?或者可能有一个我不知道的现有工具。。。

使用不同(随机)输入调用方法只是过程的一部分。您还需要为每个输入定义正确的结果,我认为工具无法做到这一点。

randoop似乎只检查equal的极少数非常基本的属性,这对imo来说用处不大,也可能导致错误的正确性印象("嘿,看,所有测试都通过了,我的软件还可以"…)

同样,只是随机生成代码(和输入)也有测试结果不确定的风险。您可能会也可能不会得到真正发现代码缺陷的测试。

也就是说,快速谷歌搜索为你可能想要采取的方法提供了以下起点:

  • 您可能对使用测试用例生成器感兴趣(这篇CodeProject文章描述了一个非常简单的生成器)。他们支持您生成"样板"代码,并可以确保您不会错过任何要测试的类/方法。当然,生成的测试需要通过定义适当的(即有意义的)输入和(正确的)输出值来进行调整。在谷歌上搜索"NUnit测试生成器"会给你其他链接,也是商业软件的链接,我不想在这里重复
  • NUnit(和其他测试框架)支持参数化测试:这些测试可以用于测试一整类输入场景。对于NUnit,我找到了Random属性,它允许您为方法生成随机输入(在特定范围内)。请记住我在上面写的关于随机测试输入的内容:这些测试的结果将不可复制,这使得它们对于自动或回归测试毫无用处

也就是说,看看这个问题(当然还有SO上的其他问题),它可能支持我反对自动单元测试生成的论点。

最新更新