博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
boost test学习(一)
阅读量:5952 次
发布时间:2019-06-19

本文共 1600 字,大约阅读时间需要 5 分钟。

据说相比之cppunit等其它的测试工具更好用,反正当初cppunit没能够在实际工作中派上用场,今天突然看到boost test库,而且是boost库内置的,研究一下。

test库将测试程序定义为一个测试模块,由测试安装,测试主体,测试清理和测试运行器四个部分组成。测试主体是测试模块的实际运行部分,由测试用例和测试套件组织成测试树的形式。

刚开始测试时,老是会报如下的链接错误:

libboost_unit_test_framework-vc90-mt-gd-1_47.lib(unit_test_main.obj) : error LNK2019: 无法解析的外部符号 "class boost::unit_test::test_suite * __cdecl init_unit_test_suite(int,char * * const)" (?init_unit_test_suite@@YAPAVtest_suite@unit_test@boost@@HQAPAD@Z),该符号在函数 _main 中被引用
1>E:\study\test_boost_suit\Debug\test_boost_suit.exe : fatal error LNK1120: 1 个无法解析的外部命令

怀疑是系统环境没设对,打开其它几个使用boost库的程序,编译,运行正常。再到boost目录中查找对应的lib,也能找到,网上再看别人类似的错误,然后将#define BOOST_TEST_MODULE maintest放在#include <boost/test/unit_test.hpp>之前,如下代码排布:

// test_boost_suit.cpp : 定义控制台应用程序的入口点。
//
 
#define BOOST_TEST_MODULE maintest
 
#include 

编译通过。

 

这次测试验证了如何用boost test完成一个测试套件的问题,由于源代码少,贴出来。

// test_boost_suit.cpp : 定义控制台应用程序的入口点。
//
 
#define BOOST_TEST_MODULE maintest
 
#include 
#include 
using namespace boost;
using namespace boost::unit_test;
 
 
BOOST_AUTO_TEST_SUITE(s_smart_ptr)
 
BOOST_AUTO_TEST_CASE(t_scoped_ptr)
{
scoped_ptr
p(new int(874));
BOOST_CHECK(p);
BOOST_CHECK_EQUAL(*p, 875);
 
p.reset();
BOOST_CHECK(p == 0);
}
 
BOOST_AUTO_TEST_CASE(t_shared_ptr)
{
shared_ptr
p(new int(100));
 
BOOST_CHECK(p);
BOOST_CHECK_EQUAL(*p, 100);
BOOST_CHECK_EQUAL(p.use_count(), 1);
shared_ptr
p2 = p;
BOOST_CHECK_EQUAL(p, p2);
BOOST_CHECK_EQUAL(p2.use_count(), 2);
 
*p2 = 255;
BOOST_CHECK_EQUAL(*p, 255);
BOOST_CHECK_GT(*p, 200);
}
 
BOOST_AUTO_TEST_SUITE_END()

转载地址:http://veaxx.baihongyu.com/

你可能感兴趣的文章
Python 多进程本机共享内存(二)
查看>>
Oracle数据库时间戳转date类型进行判断操作
查看>>
过剩通勤应用——线性规划问题解决开源工具(下篇)
查看>>
使用Dom4j进行XML解析
查看>>
SplObserver观察者模式
查看>>
Dubbo架构设计详解
查看>>
使用JavaMail技术发送邮件
查看>>
[C++] 基础知识点:namespace
查看>>
Angular通过CORS实现跨域方案
查看>>
创建线程的四种方式
查看>>
大唐电信[600198]股票
查看>>
yii2 controller 接收get形式传输过来的参数
查看>>
Spring MVC控制流程与简易配置方案
查看>>
开启OpenStack Api跨域请求(CORS)功能
查看>>
拓步T66Ⅱ(牛牛2)Root教程
查看>>
redis的简单学习2.1-redis的数据类型
查看>>
《每个设计师都应该掌握的50个css代码段》11~20段
查看>>
C Primer Plus 第13章 文件输入/输出 13.11 编程练习答案
查看>>
JBoss 系列三十七:jBPM5示例之 Rule Task
查看>>
IOS9 微信支付报 prepayid 获取失败 ErrorDomainSSL, -9802
查看>>