自动生成.NET单元测试

Pho*_*bis 38 .net c# automation automated-tests unit-testing

有单元测试生成这样的东西吗?如果是这样...

......它运作良好吗?

... .NET可用的自动生成解决方案是什么?

......有使用这种技术的例子吗?

...这仅适用于某些类型的应用程序,还是可以用来替换所有手动编写的单元测试?

Pau*_*tum 29

看看Pex.它是微软研究项目.来自网站:

Pex通过基于动态符号执行的自动探索性测试,通过手写参数化单元测试生成单元测试.

  • 至少两个版本的VS(2015、2017)已将其产品化为“ Intellitest”。在所有这些时间之后,它仍然只能在x86上运行。 (3认同)

Jon*_*jap 18

我认为,就TDD而言,单元测试生成没有意义.

您只进行单元测试,以确保您(作为开发人员)正在跟踪设计和规格.一旦开始自动生成测试,它就会失去这个目的.当然,这可能意味着100%的代码覆盖率,但这种覆盖范围将毫无意义且空洞.

自动化单元测试也意味着您的策略是后续测试,这与TDD的测试原则相反.同样,TDD不是关于测试.

话虽如此,我相信MSTest确实有一个自动单元测试生成工具 - 我能够使用VS2005.

  • 超级老评论,但没有人回复,我觉得值得说:我完全同意,但很多人不在TDD.我们希望快速启动测试代码,因为各种原因已经编写了代码.就我而言,我有一个没有测试的代码库.我希望在添加更多功能之前进行测试,并希望获得良好的开端.所以有理由这样做,但从头开始一个项目,并完成它,然后进行单元测试是一个糟糕的主意,你是对的. (17认同)
  • @vbullinger对于继承遗留应用程序的开发人员尤其如此.是的,他们(只是)可能会工作但是在代码下用一组测试绘制一条线然后向前移动会很方便,引入的修复可以添加到已经生成的测试中. (3认同)
  • 在重构或引入潜在的重大更改之前,使用自动生成的单元测试进行回归测试是完全有效的。 (2认同)

小智 15

2017年更新:

单元测试锅炉发电机适用于VS 2015-2017,并且正在维护中.似乎像宣传的那样工作.