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

  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的项目,但是如果想测试动态库的情况就需要一些改动。
其他的步骤基本相同,不同的是,在测试单元中不需要配置外部依赖项
只需要关联你将要测试的项目
这里写图片描述

这里写图片描述

要做的工作只是正确生成动态链接库
这里大致介绍一下。
一般为了保护自己代码,一般需要额外加一个接口,通过接口来访问你设计类的成员函数,相比原来的项目,多加了三个文件,如下图所示。
这里写图片描述
这三个文件就是添加的接口,接口的实现,以及生成动态链接库的设置函数。这三个文件如下所示。
这里写图片描述

这里写图片描述

这里写图片描述

此外还需要设置一个地方,如下图所示。
否则会报错
这里写图片描述

  • 9
    点赞
  • 67
    收藏
    觉得还不错? 一键收藏
  • 3
    评论
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值