本文主要介绍在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++单元测试的更多相关文章

  1. 在 Visual Studio 2013 中创建 ASP.NET Web 项目(1):概述 - 创建 Web 应用程序项目

    注:本文是“在 Visual Studio 2013 中创建 ASP.NET Web 项目”专题的一部分,详情参见 专题导航 . 预备知识 本专题适用于 Visual Studio 2013 及以上版 ...

  2. 如何在Visual Studio 2013中使用Ribbon For WPF

    1.首先需要 下载Ribbon For WPF.目前最新的版本是Microsoft Ribbon for WPF October 2010. 下载 链接: https://www.microsoft. ...

  3. 在 Visual Studio 2013 中创建 ASP.NET Web 项目(0):专题导航 [持续更新中]

    写在前面的话 随着 Visual Studio 2013 的正式推出,ASP.NET 和 Visual Studio Web 开发工具 也发布了各自的最新版本. 新版本在构建 One ASP.NET ...

  4. 在 Visual Studio 2013 中使用 Grunt, Bower 和 NPM

    在 Visual Studio 2015 中提供了对于 Grunt 和 Gulp 的内置支持,在 Visual Studio 2013 中怎么办呢?微软将 2015 中的特性作为几个独立的扩展发布出来 ...

  5. 转载:在Visual Studio 2013中管理中国特色的社会主义Windows Azure

    原文链接: http://www.pstips.net/get-azurechinacloud-settings.html 谷歌被豪迈地放弃了中国市场,微软仍旧在中国市场摸爬滚打,跪着挣钱.其中私人定 ...

  6. 在ASP.NET MVC5 及 Visual Studio 2013 中为Identity账户系统配置数据库链接及Code-First数据库迁移

    在ASP.NET MVC5 及 Visual Studio 2013 中为Identity账户系统配置数据库链接及Code-First数据库迁移 最近发布的ASP.NET MVC 5 及Visual ...

  7. 在Visual Studio 2013中修改远程Git服务器的地址

    在Visual Studio 2013中克隆了远程Git服务器的代码后,可以通过下图的方式修改Git服务器的地址:

  8. Microsoft Visual Studio 2013 的安装及单元测试

    题目:练习教科书第22~25页单元测试练习,要求自行安装Visual Studio开发平台,版本至少在2010以上,要求把程序安装过程和练习过程写到博客上,越详细越好,要图文并茂. 安装过程: 1.下 ...

  9. Visual Studio 2013中因SignalR的Browser Link引起的Javascript错误一则

    众所周知Visual Studio 2013中有一个由SignalR机制实现的Browser Link功能,意思是开发人员可以同时使用多个浏览器进行调试,当按下IDE中的Browser Link按钮后 ...

随机推荐

  1. 用shell批量编码转换

    -------------------------------------文件内容转换:iconv-------------------------------------- 通常,从其他平台拷贝过来 ...

  2. JAVA中String = null 与 String = "" 的区别

    JAVA中String = null 与 String = ""的区别 笔者今天在Debug的时候发现的NPE(NullPointerException),辛辛苦苦地调试了半天,终 ...

  3. 团队作业7——Alpha冲刺之事后诸葛亮

    Deadline: 2017-5-15 22:00PM,以博客发表日期为准 评分基准: 按时交 - 有分,检查的项目内容为事后诸葛亮分析报告 晚交 - 0分 迟交一周以上 - 倒扣本次作业分数 抄袭 ...

  4. 【Alpha】阶段 第六次 Scrum Meeting

    每日任务 1.本次会议为第 六次 Meeting会议: 2.本次会议在上午09:35,大课间休息时间在陆大召开,召开本次会议为20分钟,讨论统一下时间安排的问题以及一些程序上的该进: 一.今日站立式会 ...

  5. 团队作业8——第二次项目冲刺(Beta阶段)Day2--5.19

    1.展开站立式会议: 会议内容:①汇报一天大家任务的完成成果. ②新成员对学到的知识进行交流,并向老成员提问. ③根据大家的进度制定新一轮的任务计划. 2.每个人的工作分配 队员 今日任务 明日任务 ...

  6. 201521123003《Java程序设计》第4周学习总结

    1. 本章学习总结 你对于本章知识的学习总结 1.1 尝试使用思维导图总结有关继承的知识点. 参考资料: 百度脑图 XMind 1.2 使用常规方法总结其他上课内容. (1)了解了类型转换(cast) ...

  7. 201521123038 《Java程序设计》 第十四周学习总结

    201521123038 <Java程序设计> 第十四周学习总结 1. 本周学习总结 1.1 以你喜欢的方式(思维导图或其他)归纳总结多数据库相关内容. 接口: DriverManager ...

  8. 201521123087《Java程序设计》第14周学习总结

    1. 本周学习总结 2. 书面作业 1. MySQL数据库基本操作 建立数据库,将自己的姓名.学号作为一条记录插入.(截图,需出现自己的学号.姓名)在自己建立的数据库上执行常见SQL语句(截图)-参考 ...

  9. Java :构造器中的显式参数和this隐式参数

    1.构造器 写一个Java类,首先要先从构造器开始,构造器与类同名,在构造类的对象时会先从构造器开始. 构造器总是伴随着new操作符的执行而被调用. 构造器主要是用来初始化类的实例域. 构造器的特点: ...

  10. Babel初体验

    原文地址:→传送门 写在前面 现在es6很流行,尽管各大浏览器都还不能支持它的新特性,但是小伙伴们还是很中意它呀,于是小小的学习的一下 Babel 这里我们不介绍es6相关内容,只是说下入坑前奏,记录 ...