[boost] : lightweight_test库
lightweight_test轻量级单元测试框架, 只支持最基本的单元测试, 不支持测试用例, 测试套件的概念, 简单小巧, 适合要求不高或者快速测试的工作.
基本用法
需要包含头文件#include <boost/core/lightweight_test.hpp>
lightweight_test库定义了五个断言宏
| BOOST_TEST(e) | 断言表达式成立 |
| BOOST_ERROR(s) | 直接断言失败, 输出消息s |
| BOOST_TEST_EQ(e1, e2) | 断言两个表达式相等 |
| BOOST_TEST_NE(e1, e2) | 断言两个表达式不等 |
| BOOST_TEST_THROWS(e, ex) | 断言表达式e抛出异常ex |
// Copyright (c) 2015
// Author: Chrono Law
#include <iostream>
using namespace std;
#include <boost/smart_ptr.hpp> // shared_ptr
#include <boost/core/lightweight_test.hpp>
int main()
{
auto p = make_shared<int>(10);
BOOST_TEST(*p == 10);
BOOST_TEST(p.unique());
BOOST_TEST(p);
BOOST_TEST_EQ(p.use_count(), 1);
BOOST_TEST_NE(*p, 20);
p.reset();
BOOST_TEST(!p);
BOOST_TEST_THROWS(*p, std::runtime_error);
BOOST_ERROR("error accured!!");
return boost::report_errors(); // 输出测试报告
}
输出以下信息:
lightweight_test.cpp(23): Exception 'std::runtime_error' not thrown in function 'int main()'
lightweight_test.cpp(24): error accured!! in function 'int main()'
2 errors detected.
注意: 在测试结束时必须调用boost::report_errors(), 否则会发生BOOST_ASSERT断言错误.
测试元编程
lightweight_test提供对元编程的有限支持, 需要包含头文件#include <boost/core/lightweight_test_trait.hpp>
// Copyright (c) 2015
// Author: Chrono Law
#include <type_traits> // is_integral<T>, is_function<T>
#include <iostream>
using namespace std;
#include <boost/core/lightweight_test.hpp>
#include <boost/core/lightweight_test_trait.hpp>
int main()
{
BOOST_TEST_TRAIT_TRUE((is_integral<int>));
BOOST_TEST_TRAIT_FALSE((is_function<int>));
return boost::report_errors();
}
[boost] : lightweight_test库的更多相关文章
- [boost] : test库
最小化的测试套件minimal_test test库提供一个最小化的测试套件minimal_test, 类似lightweight_test适合入门级测试. 需要包含文件文#include <b ...
- 如何在WINDOWS下编译BOOST C++库 .
如何在WINDOWS下编译BOOST C++库 cheungmine 2008-6-25 写出来,怕自己以后忘记了,也为初学者参考.使用VC8.0和boost1.35.0. 1)下载boost ...
- Windows下如何使用BOOST C++库 .
Windows下如何使用BOOST C++库 我采用的是VC8.0和boost_1_35_0.自己重新编译boost当然可以,但是我使用了 http://www.boostpro.com/produc ...
- Boost线程库学习笔记
一.创建一个线程 创建线程 boost::thread myThread(threadFun); 需要注意的是:参数可以是函数对象或者函数指针.并且这个函数无参数,并返回void类型. 当一个thre ...
- Boost正则表达式库regex常用search和match示例 - 编程语言 - 开发者第2241727个问答
Boost正则表达式库regex常用search和match示例 - 编程语言 - 开发者第2241727个问答 Boost正则表达式库regex常用search和match示例 发表回复 Boo ...
- Boost::thread库的使用
阅读对象 本文假设读者有几下Skills [1]在C++中至少使用过一种多线程开发库,有Mutex和Lock的概念. [2]熟悉C++开发,在开发工具中,能够编译.设置boost::thread库. ...
- 一起学习Boost标准库--Boost.StringAlgorithms库
概述 在未使用Boost库时,使用STL的std::string处理一些字符串时,总是不顺手,特别是当用了C#/Python等语言后trim/split总要封装一个方法来处理.如果没有形成自己的com ...
- 一起学习Boost标准库--Boost.texical_cast&format库
今天接续介绍有关字符串表示相关的两个boost库: lexical_cast 将数值转换成字符串 format 字符串输出格式化 首先,介绍下lexical_cast ,闻其名,知其意.类似C中的at ...
- Boost C++ 库 中文教程(全)
Boost C++ 库 目录 第 1 章 简介 第 2 章 智能指针 第 3 章 函数对象 第 4 章 事件处理 第 5 章 字符串处理 第 6 章 多线程 第 7 章 异步输入输出 第 8 章 进程 ...
随机推荐
- Cxfreeze使用存在问题
Cxfreeze使用 cx_Freeze-5.1.1-cp36-cp36m-win_amd64.wh 1● 打包多个文件 Cxfreeze D:/test.py –target-dir D:/ c ...
- duilib 实现 XML重用(item完全重合的CList)
最近做一个项目,界面库用的是duilib. 软件首页的左侧是一个机型列表,右侧是机型信息及其他信息,点击左侧的机型,右边跟着变为对应的信息. 由于右侧信息比较复杂,还有进度条什么的,所以如果右侧只用一 ...
- WebGL编程指南案例解析之平移和旋转的矩阵实现
手写各种矩阵: //矩阵 var vShader = ` attribute vec4 a_Position; uniform mat4 u_xformMatrix; void main(){ gl_ ...
- 如何修改magento产品详细页面的栏目
magento默认模板里面的产品信息页面的布局是以两栏带右侧栏显示的,那么如何修改为两栏带左侧栏或者三栏.一栏的方式显示呢?下面教大家一种很简单的方法就可以实现.下面是默认的布局预览:
- SPSS教程学习笔记1:K个独立样本秩和检验及多重比较 (转载) (非参数假设检验)
本文地址:http://www.datasoldier.net/archives/173版权声明:本文为原创文章,版权归 数据小兵 所有,欢迎分享本文,转载请保留出处! 方差分析经常会出现不满 ...
- ORACLE常用系统查询
目录(?)[-] 查询系统所有对象 查看系统所有表 查看所有用户的表 查看当前用户表 查看用户表索引 查看主键 查看唯一性约束 查看外键 查看表的列属性 查看所有表空间 查看oracle最大连接数 修 ...
- Qt QML referenceexamples attached Demo hacking
/********************************************************************************************* * Qt ...
- word-如何将文字设置为插入超链接
前言 使用word有时候想要将文字部分设置为插入超链接,本文对此进行介绍. 操作步骤 1. 输入需要插入链接的文字部分: 2. 选中文字部分单击右键,点击超链接进行插入: 具体操作如下图所示: 参考 ...
- vim 程序编辑器
基本上vi共分为三种模式,分别是一般模式.编辑模式与指令列命令模式.vi 三种模式的相互关系如下图: vim的暂存档.救援回复与开启时的警告信息当我们在使用vim编辑时,vim会在与被编辑的档案的目录 ...
- CodeForces - 367E:Sereja and Intervals(组合数&&DP)
Sereja is interested in intervals of numbers, so he has prepared a problem about intervals for you. ...