Boost_Test 单元测试框架UTF

4 篇文章 0 订阅
/************************************************************************/
/*单元测试框架UTF(Unit Test Framework)
一个用于单元测试的基于命令行界面的测试套件UTF,具有单元测试、检测内存泄露、监控程序运行的功能。
test库将测试程序定义为一个测试模块,由测试安装,测试主体,测试清理和测试运行器四个部分组成。

1:测试主体是测试模块的实际运行部分,由测试用例和测试套件组织成测试树的形式。
2:测试用例是一个包含多个测试断言的函数, 是可以被独立执行测试的最小单元, 各个测试用例之间是无关的, 发生的错误不会影响其他测试用例.
3:测试套件是测试用例的容器,可以嵌套,包含一个或多个测试用例,将多个测试用例分组管理,共享安装/清理代码, 更好的组织测试用例。
4:主测试套件, 任何UTF单元测试程序必须存在唯一一个主测试套件, 它是整个测试树的根节点, 其他测试套件都是它的子节点. 主测试套件的定义可以使用宏BOOST_TEST_MAIN或者
BOOST_TEST_MODULE, 它们必须出现在<boost/test/unit_test.hpp>之前.

UTF中的测试断言:BOOST_LEVEL_ITEM
LEVEL: 
	WARN				警告级,不增加错误数量,不影响程序运行
	CHECK				检查级别,增加错误数量,不影响程序运行
	REQUIRE				最高级别,增加错误数量,程序终止运行
ITEM:
	EQUAL/CLOSE			测试相等性
	GE/GT/LT/LE/NE		测试不等性
	(NO_)THROW			是否抛出异常
	MESSAGE				测试信息
*/
/************************************************************************/

#define BOOST_TEST_MODULE test_module	// 定义boost测试模块,宏后面的 test_xxxx不重复就行(这行语句必须存在,可用于标记不同模块的测试)
#include <boost/test/unit_test.hpp>		// 引用boost单元测试头文件
#include <boost/smart_ptr.hpp>
//using namespace boost::unit_test;


BOOST_AUTO_TEST_SUITE(s_smart_ptr) // 测试套件开始
BOOST_AUTO_TEST_CASE(t_scoped_ptr) // 测试用例1
{
	boost::scoped_ptr<int> p(new int(874));
	BOOST_CHECK(p);	// 成功
	BOOST_CHECK_EQUAL(*p, 874);// 成功
	BOOST_CHECK_EQUAL(*p, 875);// 失败,输出如下信息
	//文件目录\boost_test.cp(44):error:in "test_module/t_scoped_ptr" : check *p == 875 has failed[874!= 875]
	p.reset();
	BOOST_CHECK(p == 0);// 成功
}

BOOST_AUTO_TEST_CASE(t_shared_ptr) // 测试用例2
{
	boost::shared_ptr<int> p(new int(100));
	BOOST_CHECK(p);
	BOOST_CHECK_EQUAL(*p, 100);	// 判断相等
	BOOST_CHECK_EQUAL(p.use_count(), 1);// 成功,一处引用(p)

	boost::shared_ptr<int> p2 = p;
	BOOST_CHECK_EQUAL(p, p2);
	BOOST_CHECK_EQUAL(p2.use_count(), 2);// 成功,两处引用(p,p2)

	*p2 = 255;
	BOOST_CHECK_EQUAL(*p, 255);
	BOOST_CHECK_GT(*p, 200);	// 判断不相等
	getchar();
}
BOOST_AUTO_TEST_SUITE_END() // 测试套件结束

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值