总结下C++下的单元测试
2010-07-24 12:22
134 查看
现在越来越发现单元测试在实际做项目时多么的重要,否则bug不断,不仅浪费自己的时间,更重要的是给其他人也带来了极大地不方便。
感觉boost提供的单元测试还是不错的,也相对比较简单。
如果要写多个测试用例,可以如下:
注意main函数的include与test_suit的include文件不同。
此外如果不使用boost lib,必须添加预定义宏BOOST_TEST_NO_LIB 或者 BOOST_ALL_NO_LIB,否则会出现找不到lib的错误。
或者
这样测试内存泄露什么的,还是比较方便的。
不过如果出现了内存泄露,虽然可以通过一些手段跟踪内存泄露的语句行号,但是极其不方便。我现在也用purifyplus,可以很方便的定位到语句,不过程序跑起来那就相当的慢了!
感觉boost提供的单元测试还是不错的,也相对比较简单。
如果要写多个测试用例,可以如下:
file1.cpp #include <boost/test/unit_test.cpp> .... BOOST_AUTO_TEST_SUITE(file1_test_suite) BOOST_AUTO_TEST_CASE(freader_test) { .... } BOOST_AUTO_TEST_CASE(freader_test) { .... } BOOST_AUTO_TEST_SUITE_END() - end of file 1 - file2.cpp #include <boost/test/unit_test.cpp> .... BOOST_AUTO_TEST_SUITE(file2_test_suite) BOOST_AUTO_TEST_CASE(test1) { .... } BOOST_AUTO_TEST_CASE(test2) { .... } BOOST_AUTO_TEST_SUITE_END() - end of file 2 - test_main.cpp #define BOOST_TEST_MODULE master_test_suite #include <boost/test/included/unit_test.hpp> - end of test_main.cpp -
注意main函数的include与test_suit的include文件不同。
此外如果不使用boost lib,必须添加预定义宏BOOST_TEST_NO_LIB 或者 BOOST_ALL_NO_LIB,否则会出现找不到lib的错误。
或者
#include <boost/test/included/unit_test.hpp> using namespace boost::unit_test; void free_test_function() { ... } test_suite* init_unit_test_suite( int argc, char* argv[] ) { framework::master_test_suite().add( BOOST_TEST_CASE(&free_test_function)); return 0; }
这样测试内存泄露什么的,还是比较方便的。
不过如果出现了内存泄露,虽然可以通过一些手段跟踪内存泄露的语句行号,但是极其不方便。我现在也用purifyplus,可以很方便的定位到语句,不过程序跑起来那就相当的慢了!
相关文章推荐
- C++单元测试学习总结9
- Visual Studio C++单元测试总结——3种方法可用
- c++ 单元测试打桩技巧总结(stub、mock)
- 字节对齐和C/C++函数调用方式学习总结 - [C/C++]
- C++中函数指针和函数对象的总结
- C++中const用法总结
- C++中输入字符串总结
- C++学习总结_共有和私有
- JNI转换通俗易懂的总结(C++调用java篇)
- 玩转Google开源C++单元测试框架Google Test系列(gtest)(总)
- C++容器使用经验总结
- C++学习笔记序列之返回语句区别总结
- C++总结笔记(六)排序算法之冒泡排序
- c++中的string的用法总结
- C++学习总结_头文件与源文件
- C++学习总结_析构函数
- Lua和C++交互详细总结
- 玩转Google开源C++单元测试框架Google Test系列(gtest)之五 - 死亡测试
- Google 开源了自己的 C++ 单元测试框架 : googletest
- 学习c++对类的6个成员函数的简单总结