您的位置:首页 > 其它

vs2015单元测试总结——3种方法可用

2017-06-24 11:58 148 查看
  VS中有个非常有用的功能,单元测试。通过单元测试,开发人员和测试人员可以快速的检查C#,.net和c++项目中各个类的方法中是否有逻辑错误。单元测试仅仅需要创建一次,那么在每次更改源代码时候运行,以确保不引入bug。

  

  对于单元测试中单元的含义,一般来说,要根据实际情况去判定其具体含义,如C语言中单元指一个函数,Java里或C++里单元指一个类,图形化的软件中可以指一个窗口或一个菜单等。

  

  

对于生成.exe文件的单元测试

  经过多方面查找资料,以及询问同学,发现有三种单元测试的方法。下面一一介绍。

  

  第一种方法:

  首先创建在你需要测试的解决方案树上创建一个Unit Test Project。

  如图所示:

  


  如图所示,创建单元测试项目

  


  这时会自动帮我们创建一个unittest1.cpp并生成部分初始代码

  


  箭头指向的文件,就是需要写单元测试用例代码的地方。



 例如我写的例子


 

然后可以使用下面的方法对这些单元测试进行运行



 那么将会运行你的所有测试用例。

如果运行成功的话,则会出现Test explore窗口。如下图



请注意,此处比较关键如果没有设置相关项目,那么会出错的 错误截图如下



 

 此时说明你没有配置单元测试的外部依赖项,如下图

 


 

 此外还需要配置单元测试的关联

 


 选择要关联的单元测试

 


 完美

  第二种方法:

  第二种方法和第一种方法所有的配置都一样,仅仅是单元测试的方式不同,并且单元测试代码的结构也不同。第一种方法创建的是Unit Test Project。而第二种方法,创建的是Managed Test Project,如下图所示。

  


 该单元测试的代码格式为



 其他配置和用法与第一种方法相同。请参考第一种方法。

两种方法都可以进行单元测试,但是他们是有差别的。

其实这两个工程都可用来进行单元测试,Managed Test Project提供了更全面的功能,如对类的开始初始化和结束销毁的处理,每个测试方法前后进行初始化和销毁处理等。而Unit Test Project相当于是对Managed Test Project的一种封装,只提供最简单、最常用的测试功能,而帮我们默认处理很多繁琐的工作

  第三种方法:

  使用Test Genertater NUnit Extension插件,这个插件使单元测试更加简化。该插件可在tools 扩展和更新里面下载。

  但是该插件有个很大的弊端,就是仅仅对于Visual Studio Enterprise版提供支持,其他的版本不支持。

  官方的使用方法说明

  一个较好的使用教程

附:常用的Assert用法

1.3常用的Assert用法

Assert.Inconclusive() 表示一个未验证的测试;

Assert.AreEqual() 测试指定的值是否相等,如果相等,则测试通过;

AreSame() 用于验证指定的两个对象变量是指向相同的对象,否则认为是错误

AreNotSame() 用于验证指定的两个对象变量是指向不同的对象,否则认为是错误

Assert.IsTrue() 测试指定的条件是否为True,如果为True,则测试通过;

Assert.IsFalse() 测试指定的条件是否为False,如果为False,则测试通过;

Assert.IsNull() 测试指定的对象是否为空引用,如果为空,则测试通过;

Assert.IsNotNull() 测试指定的对象是否为非空,如果不为空,则测试通过;

对于动态链接库的单元测试

上面的方法 只 能应用在生成.exe的项目,但是如果想测试动态库的情况就需要一些改动。

其他的步骤基本相同,不同的是,在测试单元中不需要配置外部依赖项

只需要关联你将要测试的项目





要做的工作只是正确生成动态链接库

这里大致介绍一下。

一般为了保护自己代码,一般需要额外加一个接口,通过接口来访问你设计类的成员函数,相比原来的项目,多加了三个文件,如下图所示。



这三个文件就是添加的接口,接口的实现,以及生成动态链接库的设置函数。这三个文件如下所示。







此外还需要设置一个地方,如下图所示。

否则会报错

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: