MSTest V2扩展

Posted erdao

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了MSTest V2扩展相关的知识,希望对你有一定的参考价值。

??随着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扩展的主要内容,如果未能解决你的问题,请参考以下文章

鬼脸原创谷歌扩展--知乎V2.0

单元测试 - 扩展 Visual Studio 单元测试类型 - 不工作

Facebook Graph API v2.4 不返回扩展用户数据

在 android 中扩展 google map api v2 的离线矢量 TileProvider

MultiTimer v2 重构版本 | 一款可无限扩展的软件定时器

MultiTimer v2 重构版本 | 一款可无限扩展的软件定时器