使用CppUnit建立简单的测试环境

前端之家收集整理的这篇文章主要介绍了使用CppUnit建立简单的测试环境前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。

TDD相信很多人都了解,它是敏捷软件开发中不可缺少的一个环节,能使你编写出更高质量,使你更放心的代码(当然,并不是指使用了TDD之后,就不会出现bug,呵呵,你懂的……)

那么,要使用TDD就要有一个测试框架,所以,在C++环境中,一个简单使用的单元测试框架CppUnit会为你帮上不少的忙

我对CppUnit的学习是从下面的文章中学习到的:

MFC UI界面的:http://www.vckbase.com/document/viewdoc/?id=1762

一个普通Cmd界面的:http://www.cs.nmsu.edu/~jeffery/courses/371/cppunit/cppunit_cookbook.html

下面是这两天来对CppUnit的学习记录:

首先,在CppUnit中的架构是:

TestRunner->TestSuite->TestCase

//这里说的名字是对应着CppUnit中的类的,但并是代表在其对应的层次上就只可以使用这个类,对应的层次上有各种其他可能适合大家的类,相信这三个会是使用的比较多的(还有一个是TestFixture吧,也十分常用)

TestRunner主要充当调用者的角色(从名字上可以理解到吧)

TestSuite主要充当着一个封包的角色,即将你所有的test cases都包在一起(不单止是test cases,它同样可以包含一个suite的)

TestCase主要充当一个测试用例,如你要测试:

void testFalse()

{

CPPUNIT_ASSERT(1!=2);

}

这个testFalse就是一个case,Suite就是包含大量这些case的合集(可能还有更多更深的含义,在下并无深入学习,就这是我自己的理解)

下面是一个简单的例子:

//这里使用到许多HelperMarco.h中的宏,通常如果只是使用CppUnit的话,没有必要这道这些Marco实现是怎样的,知道怎么用就可以了,这是我的理解

这里是模仿cppunit_cook_book中的例子:

首先需要一对C++文件:ComplexTest.h/cpp //顾名思义就是对Complex类的测试文件


然后就需要在我们的main函数里面调用我们的测试用例了

由于在这个时候运行肯定会错的,所以不断进行修改,让编译通过,所有的CPPUNIT_ASSERT()通过就是我们的任务了,这里就开始要体现到TDD的威力了,而CppUnit也已经为我们打下了坚实的基础了!!!它让我们知道我们哪里错了!要做哪些事情,要定义一些怎样的接口等,不单止为我们日后维护提供保障,对我们code层面上的设计都是十分有帮助的,这些都是需要我们不断从编码时间中得到的!!!!

对于Complex的实现这里就不贴出代码了,自己实现吧,哈哈!

猜你在找的设计模式相关文章