一、boost test
提供基于命令行的单元测试套件:Unit Test FrameWork,还可以检测内存泄漏,程序运行监控功能。
#include <boost/test/unit_test.hpp>
链接两个需要编译的库:boost_unit_test_framework、boost_test_exec_monitor
功能:
组织测试套,测试用例
各种测试断言
显示测试进度
测试报告多种格式,如xml
命令行可以指定运行测试套和测试用例
监控程序运行
1. 测试断言
断言测试失败,会记录出错文件名、行号、错误信息
命名规则:BOOST_LVL(WARNING\CHECK\REQUIRE)_XXX
WARNING不增加错误数
CHECK增加错误数,但不终止程序
REQUIRE增加错误数并终止程序
XXX:相等,不等,抛出,不抛出异常,大于,小于
BOOST_LVL_EQUAL(1,r):检测1==r,不能用于浮点数比较
BOOST_LVL_CLOSE:浮点数比较
BOOST_LVL_GE(1,r): 检测1>=r, GT(1>r),LT(1<r),LE(1<=r),NE(1!=r)
BOOST_LVL_THROW(e,ex): 检测表达式e抛出指定的ex异常
BOOST_LVL_NO_THROW(e): 检测表达式e不抛出任何异常
BOOST_LVL_MESSAGE(e,msg): 失败给出指定消息
BOOST_TEST_MESSAGE(msg): 输出通知信息,不含有任何警告或者错误
2. 测试套与测试用例
BOOST_AUTO_TEST_SUITE(s_suite1)
BOOST_AUTO_TEST_CASE(t_case1)
{
BOOST_CHECK_EQUAL(1,1);
}
BOOST_AUTO_TEST_CASE(t_case2)
{
BOOST_CHECK_EQUAL(5,10/2);
}
BOOST_AUTO_TEST_SUITE_END()
测试套件是测试用例的容器,包含一个或多个测试用例,测试套可以嵌套
二、google test
三、google benchmark