天天看点

C++ Unit test 初体验

在软件开发的过程中,单元测试(Unittesting)是一个重要的coding步骤,可以让你的程序代码质量大幅提升、协助你进行良好的程序架构设计,单元测试是针对程序单元(软件设计的最小单位)来进行正确性检验的测试工作,在程序化编程中,一个单元就是单个程序、函式、过程等;对于对象导向编程,最小单元就是方法,包括基础类别(超类)、抽象类、或者衍生类别(子类别)中的方法。

想要在VC++项目中,进行单元测试的Framework有很多选择,例如: CPPUnit、GoogleGTest...等,自VisualStudio 2012开始,提供了内建的单元测试框架Microsoft.VisualStudio.TestTools.CppUnitTestFramework并且与VS高度整合。

以下为使用VS2013简历简单Unit test的步骤:

1. 建立Product 项目

建立一个基本的win32主控台应用程序项目。在这里命名为LearUniteTest,编写简单的代码,如建立一个Student类和年龄,年级函数。

2. 设定Product code配置类型,从.exe改为.lib(静态链接库)

C++ Unit test 初体验
C++ Unit test 初体验

3. 建立Unit Test项目, 在同一Solution解决方案中,新增测试项目,选择 测试->本机单元测试项目。

C++ Unit test 初体验
C++ Unit test 初体验

4. 设定测试项目配置:

请在Solution Manager中,对UnitTes项目按右键,在项目属性窗口中进行以下设定:

4.1. 在[VC++目录]->[Include目录]设定参考项目头文件所在的文件地址;

4.2. 在[VC++目录]->[库目录]中设定lib文件所在文件地址;

C++ Unit test 初体验
C++ Unit test 初体验

4.3  在[链接器]->[输入]设定连结项目输出的lib

C++ Unit test 初体验
C++ Unit test 初体验

5: 在Unittest.cpp中编写测试代码;

Student newStudent;
            newStudent.SetAge(10);
            newStudent.SetGrade(5);
            Logger::WriteMessage("StudengInfoTest begins./n");
            Assert::AreNotEqual(newStudent.GetAge(), 0);
            Assert::AreNotEqual(newStudent.GetGrade(), 0);
            Logger::WriteMessage("StudentInfoTest end./n");
           

常用函数:Logger::WriteMessage()

Assert::AreNotEqual()

Assert::AreEqual()

继续阅读