1.常用的C++单元测试框架
测试驱动开发(TDD)已经是一种非常流行的开发方式了,在Java和。Net中都提供了非常好的单元测试框架,最近研究C++下面的单元测试,发现其实在C++中还是有很多选择:
CPPUnit:著名的XUnit系列产品之一,熟悉JUnit、NUnit的开发人员可以很快上手。
CXXTest:需要进行预处理,需要安装Perl或Python.
Boost Test:功能强大,提供了自动注册和手动注册两种方式,更重要的是来自千锤百炼的Boost库。
Google Test:Google在去年开源的测试框架,据说其内部上千个项目均采用该框架进行单元测试。
2.Boost Test起步
先来看一个简单的Boost Test示例(来自Boost文档):
测试初步
1#define BOOST_TEST_MODULE example 2 3#include <boost/test/unit_test.hpp> 4 5 6 7int add(int i, int j); 8 9 10 11BOOST_AUTO_TEST_SUITE(minimal_test) 12 13 14 15BOOST_AUTO_TEST_CASE(my_test) 16 17{ 18 19 BOOST_CHECK(add(2, 2) == 5); 20 21 BOOST_REQUIRE(add(2, 2) == 4); 22 23 if(add(2, 2) != 4) 24 25 BOOST_ERROR("oops!"); 26 27 if(add(2, 2) != 4) 28 29 BOOST_FAIL("oops!"); 30 31 if(add(2, 2) != 4) 32 33 throw "oops!"; 34 35 BOOST_CHECK_MESSAGE(add(2, 2) == 4, "add(..) result: " << add(2, 2)); 36 37 BOOST_CHECK_EQUAL(add(2, 2), 4); 38 39} 40 41 42 43BOOST_AUTO_TEST_SUITE_END() 44 45 |