/************************************************************************/
/*最小化的测试套件minimal_test
minimal_test提供以下四个测试断言宏:
BOOST_CHECK(e) 断言测试通过, 如不通过不影响程序执行
BOOST_REQUIRE(e) 要求断言必须通过, 否则程序停止执行
BOOST_ERROR(e1, e2) 给出错误信息, 程序继续执行
BOOST_FAIL(e1, e2) 给出错误信息, 程序运行停止
*/
/************************************************************************/
#include "stdafx.h"
#include <boost/format.hpp>
#include <boost/test/minimal.hpp>// 最小化测试头文件
int test_main(int argc,char * argv[])// minimal_test内部实现了main(), 因此无需自己编写main()函数, 只要实现test_main()即可
{
boost::format fmt("%d-%d");
BOOST_CHECK(fmt.size() != 0); // 测试成功
BOOST_CHECK(fmt.size() == 0); // 测试失败,打印如下信息,程序继续执行
//文件目录\boost_test.cpp(23) : test fmt.size() == 0 failed in function : 'int __cdecl test_main(int,char *[])'
fmt % 12 % 34;
BOOST_REQUIRE(fmt.str() == "12-34"); // 测试成功
//BOOST_REQUIRE(fmt.str() == "12-24"); // 测试失败, 打印如下信息,程序停止执行(内部函数return 0;了)
//文件目录\boost_test.cpp(28) : test fmt.str() == "12-24" failed in function : 'int __cdecl test_main(int, char *[])'
BOOST_ERROR("演示一条错误消息"); // 给出错误信息如下, 程序继续执行
//文件目录\boost_test.cpp(31) : 演示一条错误消息 in function : 'int __cdecl test_main(int,char *[])'
fmt.clear();
fmt % 12;
try
{
std::cout << fmt; // 输入参数不完整, 抛出异常
}
catch (...)
{
BOOST_FAIL("致命错误,测试终止"); // 给出错误信息如下, 程序停止执行(内部函数return 0;了)
// 文件目录\boost_test.cpp(42) : 致命错误,测试终止 in function : 'int __cdecl test_main(int,char *[])'
}
getchar();
return 0; // test_main()必须返回一个整数
}