自动生成的.NET单元测试(Auto-generation of .NET unit tests)

2019-07-18 01:46发布

有没有这样的事情作为单元测试生成? 如果是这样...

......它的工作原理呢?

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

......在那里使用的技术像这样的例子吗?

......对于某些类型的应用程序这只好,还是可以将它用于替换所有手工编写单元测试?

Answer 1:

看看Pex的 。 它是一种微软研究项目。 从网站:

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



Answer 2:

我相信有单元测试一代是没有意义的,至于TDD去。

让你确定你(作为开发人员)的轨道上瓦特/关于设计和规格只能让你的单元测试。 一旦你开始自动生成的测试中,它失去了这个目的。 当然这可能意味着100%的代码覆盖,但覆盖面将是毫无意义和空虚。

自动单元测试也意味着你的策略是测试之后,这是对TDD的测试之前宗旨的。 同样,TDD是不是测试。

话虽这么说,我相信MSTest的确实有一个自动单元测试生成工具 - 我能够使用一个与VS2005。



Answer 3:

更新了2017年:

单元测试样板发电机适用于2015 - 2017年VS并正在维持。 似乎工作作为标榜。



Answer 4:

我创建“ErrorUnit”,它从你的暂停,Visual Studio生成的MSTest或NUnit的单元测试,或者从你的错误日志; 嘲笑类变量,方法参数和EF数据访问为止。 ( http://ErrorUnit.com )

没有单元测试生成器可以做任何事情。 单元测试是经典分成三个部分安排,法和断言; 排列部是一个单元测试的最大部分和它的所有先决条件设置到一个测试,嘲笑所有打算时在测试中被加载的数据,一个单元测试的法令部分通常是一条线,并激活的代码的一部分被测试传入的数据,最后测试的Assert部分采用该法部分的结果,并验证它符合预期(可以是零线只是确保不存在错误时)。

单元测试发电机通常只能做“排列”和“法”上的单元测试创​​建部分; 然而,因为只有你知道什么是正确,什么你的目的是不正确的单元测试发电机一般不写“断言”部分。 因此,一些人工输入/单元测试的延长是必要的完整性。



Answer 5:

我同意乔恩。 某些类型的测试,如自动模糊测试,绝对从自动生成中受益。 虽然你可以使用的单元测试框架的工具来做到这一点,这并不能达到良好的单元测试覆盖率相关的目标。



Answer 6:

Parasoft公司.TEST有测试代的功能。 它使用的测试说明和断言评价NUnit的框架。

可以通过自动生成情景(构建输入和调用测试方法),并创建其基于当前代码库行为的断言以制备回归测试套件。 以后,后下测试演变代码的基础上,断言表示回归或可以再次很容易地记录。



Answer 7:

我用NStub存根出测试我的课。 它的工作原理相当不错。



Answer 8:

我使用的工具来生成测试用例。 我认为它非常适用于更高级别的,面向终端用户测试。 的东西,是用户验收测试,远远超过纯粹的单元测试的一部分。

我使用的单元测试工具,该验收测试。 它工作得很好。

见模具构建测试案例 。



Answer 9:

有(www.agitar.com)称为AgitarOne一种商业产品,可以自动生成JUnit测试类。
我没有使用过它,不能在它是多么有用发表评论,但如果我在那一刻做一个Java项目,我会看它。

我不知道一个.net当量(Agitar没有一个宣布.NET版本,但据我所知它从未实现)。



Answer 10:

我知道这个线程是旧的,但所有developpers的缘故,有一个好的图书馆称为单元测试发生器:

https://visualstudiogallery.msdn.microsoft.com/45208924-e7b0-45df-8cff-165b505a38d7

良好的开发



Answer 11:

GennyMcGenFace在您的类中的每个函数创建一个单元测试,并与每一个参数的随机字/值生成对象。

  • 生成单元测试你的类中的每个功能
  • 计算出有效随机生成的值作为paramater输入和返回语句。
  • Mockable接口返回有效的随机生成的值
  • 生成单元测试你的类中的每个功能
  • 导入所有需要的命名空间到你的测试类

它有助于建立你的单元测试,特别是如果你有有很多的参数输入对象。

单元测试将是这个样子



Answer 12:

硒从网页上的用户命令,非常漂亮生成单元测试。



文章来源: Auto-generation of .NET unit tests