在Visual Studio 2013 中使用C++单元测试
本文主要介绍在Visual Studio 2013中对代码进行单元测试的方法,包含了两方面的内容:对已有的Dll文件进行单元测试,以及对已有的源文件进行单元测试。
1. VS2013对DLL文件的单元测试
对已有的dll文件进行单元测试。
- 首先,新建一个待测试的DLL项目CalculationDll,共包含3个文件: CalculationDll.cpp、CalculationDll.h、CalculationDll.def。
- 然后,新建了一个单元测试项目CalculationTest。
- 继而,在CalculationTest的项目属性Include Directories中包含了待测DLL项目CalculationDll的目录,
- 继而,在CalculationTest的项目属性Common Properties > References 中添加了对待测DLL项目CalculationDll的引用
- 继而,在CalculationTest中包含CalculationDll.h,撰写测试用例Test_Method
- 最后,BuildCalculationTest项目,打开Test Exploerer,运行测试用例
[1] 创建和编写待测DLL项目 – CalculationDll
新建“Win32 Project”,命名为“CalculationDll”,Solution名称为”TestExample”, 类型选择为DLL,空项目。
新建 cpp文件
新建 .h文件
新建def文件
最后 Build 该项目
[2] 创建Test项目 – CalculationTest
在当前的Solution中添加新的Test项目CalculationTest.
[3] Include Directory 包含头文件目录
CalculationTest的项目属性 > VC++ Directories > Include Directories 中添加 CalculationDll的目录
[4] 添加项目引用
CalculationTest的项目属性 >Common Properties > References > Add New References > 勾选CalculationDll.
[5] 编写测试代码
在CalculationTest 的 unittest1.cpp中编写测试代码,首先包含头文件,然后编写两个测试方法。
[6] Build ,运行测试
先Build CalculationDll项目,然后选择菜单“Test” > “Windows” > “Test Explorer” 打开 Test Explorer窗口
该窗口中可以运行测试用例
2. VS2013中对已有源文件的单元测试
对已有的C++项目中的源码进行单元测试。
- 首先,新建一个待测试的项目Calculation,共包含2个文件: Calculation.cpp、Calculation.h。
- 然后,新建了一个单元测试项目MyUnitTest。
- 继而,在MyUnitTest的项目属性Include Directories中包含了待测项目Calculation的目录
- 继而,将待测试的Calculation项目中的源码添加到MyUnitTest中
- 继而,在MyUnitTest中包含Calculation.h,撰写测试用例Test_Method
- 最后,BuildCalculationTest项目,打开Test Exploerer,运行测试用例
【1】新建待测试项目 – Calculation
新建“Win32 Console Application”类型的Project,名为“Calculation”,Solution 名为”TestExample”。并添加两个简单的函数add和sub,实现加减运算。
为了后续测试,先将_tmain函数注释掉。
【2】 添加头文件 – Calculation.h
为了能让add和sub函数可以被Test项目测试,需要新建一个头文件,在头文件中包含这两个函数的声明。这样Test项目就可以包含该头文件从而使用add和sub函数。
如图,头文件为”Calculation.h”
在Calculation.cpp 中包含该头文件
【3】 新建Test项目 – MyUnitTest
在Solution Explorer 中右键Solution名“TestExample”,选择“Add”> “New Project”,新建项目类型为”Test”,模板选择“Native Unit Test Project”,命名为”MyUnitTest”
【4】 包含目录
在MyUnitTest项目属性的”VC++ Directories” > “Include Directories”中添加 待测项目Calculation的目录。
【5】将已有源代码添加到Test项目中
右键”MyUnitTest”项目,选择“Add”> “Existing Item” ,将Calculation.h 和 calculation.cpp 添加到项目
【7】 编写测试
在MyUnitTest项目的unittest1.cpp中包含calculation.h ,然后编写两个测试方法TestAdd和TestSub
【8】 Build MyUnitTest项目
必须先Build MyUnitTest,才能在下面一步的Test Explorer中看到编写的测试用例
【0】 在Test Explorer中运行测试用例
菜单“Test”> “Windows” > “Test Explorer” 打开Test Explorer.
在这里运行测试用例。
本文主要讲解了整个测试过程,后续会补充具体的单元测试方法。
在Visual Studio 2013 中使用C++单元测试的更多相关文章
- 在 Visual Studio 2013 中创建 ASP.NET Web 项目(1):概述 - 创建 Web 应用程序项目
注:本文是“在 Visual Studio 2013 中创建 ASP.NET Web 项目”专题的一部分,详情参见 专题导航 . 预备知识 本专题适用于 Visual Studio 2013 及以上版 ...
- 如何在Visual Studio 2013中使用Ribbon For WPF
1.首先需要 下载Ribbon For WPF.目前最新的版本是Microsoft Ribbon for WPF October 2010. 下载 链接: https://www.microsoft. ...
- 在 Visual Studio 2013 中创建 ASP.NET Web 项目(0):专题导航 [持续更新中]
写在前面的话 随着 Visual Studio 2013 的正式推出,ASP.NET 和 Visual Studio Web 开发工具 也发布了各自的最新版本. 新版本在构建 One ASP.NET ...
- 在 Visual Studio 2013 中使用 Grunt, Bower 和 NPM
在 Visual Studio 2015 中提供了对于 Grunt 和 Gulp 的内置支持,在 Visual Studio 2013 中怎么办呢?微软将 2015 中的特性作为几个独立的扩展发布出来 ...
- 转载:在Visual Studio 2013中管理中国特色的社会主义Windows Azure
原文链接: http://www.pstips.net/get-azurechinacloud-settings.html 谷歌被豪迈地放弃了中国市场,微软仍旧在中国市场摸爬滚打,跪着挣钱.其中私人定 ...
- 在ASP.NET MVC5 及 Visual Studio 2013 中为Identity账户系统配置数据库链接及Code-First数据库迁移
在ASP.NET MVC5 及 Visual Studio 2013 中为Identity账户系统配置数据库链接及Code-First数据库迁移 最近发布的ASP.NET MVC 5 及Visual ...
- 在Visual Studio 2013中修改远程Git服务器的地址
在Visual Studio 2013中克隆了远程Git服务器的代码后,可以通过下图的方式修改Git服务器的地址:
- Microsoft Visual Studio 2013 的安装及单元测试
题目:练习教科书第22~25页单元测试练习,要求自行安装Visual Studio开发平台,版本至少在2010以上,要求把程序安装过程和练习过程写到博客上,越详细越好,要图文并茂. 安装过程: 1.下 ...
- Visual Studio 2013中因SignalR的Browser Link引起的Javascript错误一则
众所周知Visual Studio 2013中有一个由SignalR机制实现的Browser Link功能,意思是开发人员可以同时使用多个浏览器进行调试,当按下IDE中的Browser Link按钮后 ...
随机推荐
- linux一周学习总结
对于linux,之前也完全没有接触过,完全零基础小白.来到马哥以后,进入学习也有一周时间 ,一周里老师带我们学习了很多指令,下面,我就自己的理解和老师讲授的内容对linux中的一些指令做一个简单的小总 ...
- java1.8新特性
转自:http://www.oschina.NET/translate/everything-about-Java-8 建议去看原文,此处转载只是为了记录. 这篇文章是对Java8中即将到来的改进做一 ...
- Linux设置全局代理与yum代理
设置全局代理,方法如下: 修改 /etc/profile 文件,添加下面内容: http_proxy=http://username:password@yourproxy:8080/ ftp_prox ...
- css3新特性---(border,Background部分)
boder属性新特性: border-radius 设置或检索对象使用圆角边框 border-top-left-radius 设置或检索对象左上角圆角边框 border-top-right-rad ...
- 201521123069 《Java程序设计》 第12周学习总结
1.本周学习总结 1.1 以你喜欢的方式(思维导图或其他)归纳总结多流与文件相关内容. 2.书面作业 Q1.将Student对象(属性:int id, String name,int age,doub ...
- 201521123095 《Java程序设计》第11周学习总结
1. 本周学习总结 1.1 以你喜欢的方式(思维导图或其他)归纳总结多线程相关内容. 2. 书面作业 本次PTA作业题集多线程 互斥访问与同步访问 完成题集4-4(互斥访问)与4-5(同步访问) 1. ...
- 201521123050 《Java程序设计》第12周学习总结
1. 本周学习总结 2. 书面作业 将Student对象(属性:int id, String name,int age,double grade)写入文件student.data.从文件读出显示. 1 ...
- 14.LINUX-platform机制实现驱动层分离(详解)
版权声明:本文为博主原创文章,未经博主允许不得转载. 本节目标: 学习platform机制,如何实现驱动层分离 1.先来看看我们之前分析输入子系统的分层概念,如下图所示: 如上图所示,分 ...
- FoxOne---一个快速高效的BS框架--生成增删改查
FoxOne---一个快速高效的BS框架--(1) FoxOne---一个快速高效的BS框架--(2) FoxOne---一个快速高效的BS框架--(3) FoxOne---一个快速高效的BS框架-- ...
- PHP获取文件的绝对路径
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 ===========PH ...