码迷,mamicode.com
首页 > 其他好文 > 详细

MSTest V2扩展

时间:2018-02-06 01:25:56      阅读:323      评论:0      收藏:0      [点我收藏+]

标签:测试用例   stc   esc   eth   des   包装   post   不同   tom   

??随着MSTest V2的发布,带来了更好的扩展性,写单元测试有了更多姿势,微软说,可扩展性一直是MSTest V2 API设计的目标,我们姑且相信它,来看看有哪些可扩展特性。

??MSTest V2的扩展性体现在以下几个点:

特性扩展

??TestProperty允许我们为一个测试方法添加描述,它需要两个字符串作为key/value传入。

??MSTest V2允许TestPorperty被扩展,允许我们继承TestPropety,重写它使得获得强类型支持。这样使用起来更加方便也更安全。关于它更具体的介绍可参考这里:RFC 001

断言扩展

??MSTest V2内置了一些断言,满足一般情况的需求,但就是因为它要满足一般情况,因此它的API并非最简洁。

??MSTest V2允许对内置的断言扩展,使得我们可以以更简洁的方式定制自己的断言API。关于它的更具体的介绍可参考这里:RFC 002

执行扩展

??MSTest V2默认的执行流程是先创建一个TestClass实例,然后调用里面的TestMethod方法。这可以满足大多数情况,但是,有时我们想有更多的定制,比如:希望将用例的方法统一包装在另一个方法中,或者用例执行多次等。

??MSTest V2允许我们在以下两个层级加入扩展:

  1. 测试方法级别:允许创建自己的TestMethod特性,定制执行逻辑
  2. 测试类级别:允许创建自己的TestClass特性,定制内部所有测试方法的执行逻辑

??关于它的更具体的介绍可参考这里:RFC 003

数据驱动扩展

??测试用例的输入可以在内部提供(使用DataRow特性),或者来自外部源(文件或数据库)。使用DataRow特性提供的数据是静态的,且无法在多个测试中共享。同时,从文件或数据库读取数据源也很不方便。如果希望数据来自另一个方法,并且希望在不同用例中共享数据,该怎么办呢?在NUnit中可以实现多参数的测试用例,在JUnit中也有用一个方法提供用例输入的设计。

??MSTest V2允许我们实现一个ITestDataSource接口以提供任意需要的数据源,实现类似JUnit方法返回用例输入的功能。因此,我们不仅可以在代码中自定义数据源,还可以将定义的数据源用于多个测试。

??关于它的更具体的介绍可参考这里:RFC 005

总结

??下面这张图描述了上文所述的扩展点:
技术分享图片

date: 2017-11-08 21:24:07

MSTest V2扩展

标签:测试用例   stc   esc   eth   des   包装   post   不同   tom   

原文地址:https://www.cnblogs.com/erdao/p/8419704.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!