C++ 单元测试工具 CppUnitTest
2005-01-25 14:32
363 查看
CppUnit 是开放源代码的测试工具,来源于 Java 版本的 JUnit。单元测试在极限编程理论中有非常重要的作用。即使不采用极限编程方式,每个软件工程师应该写测试程序、准备测试数据、测试自己写的软件模块能够运行。
CppUnit 可以用来同时测试多个软件模块,并且显示有多少成功、多少失败。有命令行方式运行,VC 写的 GUI 程序界面,也有 QT 的 GUI 程序界面。以下是 VC 运行界面。
如果您想用 CppUnit 来进行软件测试的话,可以到 CppUnit 在 Sourceforge 上面的网站下载原代码,里面有示例程序。
我们可以从 cppunit-1.10.2/examples/msvc6/CppUnitTestApp/CppUnitTestApp.dsw 改造入手,全部编译后,将原有的 cppunit、DSPlugIn、TestRunner 几个project 删除,只留下CppUnitTestApp project。在 VC 的 File View 将原有的 DLL Dependencies,Tests 删除。然后增加自己的测试程序。
测试的 C++ 代码都必须加入到这个 Project ,如果用 C++ Builder 就只能用那个命令行的版本了。如果有失败的测试单元,则显示是哪些测试单元。
一般的测试单元,写一个 CPPUNIT_NS::TestCase 的子类,里面写一个或者多个 testXXX 函数。在 testXXX 中调用正式代码:
void testXXX(){
int result = myFun(1,2);
CPPUNIT_ASSERT_EQUAL(result,7);
result = myFun(10,70);
CPPUNIT_ASSERT_EQUAL(result,9);
}
每个 test 函数算一个测试基本元素。如果它里面的所有 assert 都成功,这个 test 函数才算通过。
通常来说,测试所用的数据,一般不用写在源代码中,而是写在 xml 或者 ini 或者其他文件中。这样的好处是测试时更改测试数据,不用重新编译程序,方便测试。
比较通用的方法是,写一个 BaseTestCase 类,里面处理好数据读入、输出,其它测试单元都从这个 BaseTestCase 继承。
相对于 JUnit 而言,CppUnit 的不方便之处是新的测试程序需要加入测试 project,对于很多人同时在写测试单元的时候,大家都在等别人修改完了测试 project自己才能进行,不太好。相对而言,Java 测试程序可以不需要任何 project 文件。变通的方法是,将测试 project 拆分成多个子 project ,但是这样一来就无法在一个测试程序中运行所有的测试。
CppUnit 的好处是运行速度比较快。
相关文章推荐
- C++ 单元测试工具 CppUnitTest
- c++单元测试工具unittest++使用小结
- C/C++单元测试框架的选择(CppUTest vs. CppUnit vs. CppUnitLite vs. CppTest vs. GoogleTest vs. CxxTest vs. CUnit)
- C++单元测试工具unittest++使用小结
- C/C++单元测试工具Visual Unit 4发布
- C++单元测试(Unit Test)中Catch和Gmock的结合使用
- c++头文件,cpp文件,makefile,unit test自动生成器
- C/C++单元测试工具Visual Unit 4即将发布
- C/C++单元测试工具Visual Unit新手入门
- C++单元测试工具——doctest
- 单元测试工具googletest C++Test和CppUnit
- 33.Python的单元测试工具——unittest(高级)
- 32.Python的单元测试工具——unittest(初级)
- C++ Unit Test Framework(单元测试框架)
- codeblocks+Mingw 下配置开源c++单元测试工具 google test
- C/C++单元测试工具Visual Unit 4发布
- C/C++单元测试工具Visual Unit 2.0介绍
- C/C++单元测试工具Visual Unit 4即将发布
- 强烈推荐大家使用cpp-ut-project作为C/C++的TDD开发工具套件
- 开放源码 C/C++ 单元测试工具,第 1 部分: 了解 Boost 单元测试框架