有人试过.Net的任何单元测试生成器吗?
我认为虽然它不会替代任何编写功能的人所编写的良好单元测试,但我认为它会带走一些工作并成为我们可以更好地进行单元测试的起点.
谢谢.
单元测试生成是执行单元测试的错误方法.进行单元测试的正确方法是在编写功能代码之前创建测试用例,然后开发代码直到测试验证,这称为TDD(测试驱动开发).
单元测试生成错误的一个关键原因是因为如果现有代码中存在任何错误,则会针对这些错误生成测试,因此如果您将来修复它们,那么错误的测试将会失败并且您'当它实际被修复时,我会假设某些东西被破坏了.
但是自从编写代码之后,它现在就处于桥下了.并且可能的错误单元测试总比没有单元测试好.我一直喜欢NUnit的,有一个NUnit的兼容测试发生器这里(很实惠).
你考虑过Pex吗?它来自微软研究院.
Pex自动生成一个小型测试套件,具有针对.NET程序的高代码覆盖率.为此,Pex执行系统程序分析(使用动态符号执行,类似于路径限制模型检查)来确定参数化单元测试的测试输入.Pex通过监视执行跟踪来了解程序行为.Pex使用约束求解器生成新的测试输入,这些输入执行不同的程序行为.
几年前,我修改了Haskell的QuickCheck,以便通过生成测试实现纯功能的测试驱动开发.我的解决方案是保存PRNG种子,因为它生成了一个失败的测试用例,并使用同一个种子运行未来的测试.
我最近买了一个.NET的工作,和谷歌发现,MbUnit的确实 有在2004年生成的测试支持,我还发现了更近的公堂,但我使用它,我不记得到底是什么有某种麻烦.
因此,TDD和生成测试不是互相排斥的,Gallio是我见过的唯一最近的.NET选项,我不记得为什么我现在不使用它.