.net持续集成单元测试篇之单元测试简介以及在visual studio中配置Nunit使用环境

系列目录

单元测试及测试驱动开发简介 什么是单元测试

单元测试是一段自动化的代码,这段代码调用被测试的工作单元,之后对这个单元的单个最终结果的某些假设进行检验。单元测试几乎都是用单元测试框架编写的。单元测试容易编写,能快速运行。单元测试可靠、可读、并且可维护。只要产品代码不发生变化,单元测试的结果是稳定的。

特征

• 自动化、可重复执行;

• 很容易实现;

• 第二天还有意义;

• 任何人都应该能一键运行它;

• 运行速度应该很快;

• 结果应该是稳定的;

• 能完全控制被测试的单元;

• 完全隔离(独立于其他测试的运行);

单元测试命名

由于单元测试非常强调可读性,因此我们要花些功夫在命名上,要使单元测试方法名简单易懂,基本一下子能看出它的主要功能.如果觉得方法名不能够完全表达出此方法要实现的功能,也可以额外添加注释.推荐的命名方式如下
Should_Return(Throw)_Result(exception)_If(when)But

其中Should表示期待一个结果,Return或者Throw为要测试方法期待的返回结果,If表示出现以上结果需要的条件,But为附加条件.

什么是集成测试

集成测试是对一个工作单元进行的测试,这个测试对被测试的工作单元没有完全的控制,并使用该单元的一个或多个真实依赖物,例如时间,网络、数据库、线程或随机数产生器等。

单元测试与集成测试的区别

单元测试与集成测试最大的区别在于:集成测试依赖于一个或多个真实的模块,当运行集成测试时,出现失败的情况后你并不能立即判断是哪里出了问题,因此找到缺陷的根源会比较困难。

Avatar

测试驱动开发 传统开发流程

[虚线代表是一个可选的行为]

Avatar

TDD开发流程

Avatar

由上面的两个图中可以看出TDD与传统开发模式的区别:先编写一个会失败的测试,然后创建产品代码,并确保这个测试通过,接下来是重构代码或者创建另一个会失败的测试。

单元测试框架作用

单元测试框架是帮助开发人员进行单元测试的代码库和模块。

Nunit单元测试框架使用

NUnit 是一套开源的基于.NET平台的类Xunit白盒测试架构,支持所有的.NET平台。这套架构的特点是开源,使用方便,功能齐全。很适合作为.NET语言开发的产品模块的白盒测试框架。
起初是从流行的Java单元测试框架JUnit直接移植过来的,之后NUnit在设计和可用性上做了极大地改进,和JUnit有了很大的区别,给日新月异的测试框架生态系统注入了新的活力。
如何在VS安装并运行呢?用Nuget是最方便的一种形式了,如下图:

Avatar


如果各位的visualStudio中安装有Resharper插件,则只需要安装红色部分框选的内容即可,如果没有安装也没有关系,可以使用VisualStudio自带的测试工具也是可以的,
以下讲解用的也是VisualStudio自带的测试工具.
需要注意的是如果使用VisualStudio自带的测试工具,还需要安装Nunit.Console

编写第一个单元测试

我们在刚才新建的项目中添加一个名为FirstUnitTest的项目
我们要引入using NUnit.Framework;方可使用Nunit
我们新建的第一个测试代码如下

Avatar


其中TestFixture注解标识这个类为单元测试类,如果没有此标识,则此类无法在单元测试工具中运行
方法上的Test注解标注此方法为一个单元测试方法,如果没有Test注解,则此方法在单元测试运行的时候将会被忽略掉
类注解和方法注解添加以后,单元测试就可以跑起来了.

运行第一个单元测试 使用VisualStudio自带单元测试工具运行

Avatar


如上图示,点击菜单栏的Test(测试)-Windows(窗口)-Test Explorer(测试浏览器)便可以在VisualStudio中打开测试浏览器,只要我们保存了项目,就可以在Test Explorer中看到刚才创建的单元测试了(刚创建的单元测试名为FirstUnitTest)
运行单元测试,我们点击Test Explorer中FirstUnitTest下的测试方法名,出现以下选项

Avatar


我们点击Run Selected Test(运行选中的单元测试)便可以运行这个单元测试了

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://www.heiqu.com/wssdzx.html