Boost Test学习总结(C++)

本文介绍了C++中的Boost Test单元测试框架,包括如何起步、单参数测试用例、夹具(Fixture)的使用及测试输出的配置。通过示例展示了Boost Test的基本用法,如BOOST_AUTO_TEST_SUITE、BOOST_AUTO_TEST_CASE、BOOST_CHECK、BOOST_FIXTURE_TEST_SUITE等,以及如何处理多参数测试和使用夹具管理资源。
摘要由CSDN通过智能技术生成

1. 常用的C++单元测试框架

测试驱动开发(TDD)已经是一种非常流行的开发方式了,在Java.Net中都提供了非常好的单元测试框架,最近研究C++下面的单元测试,发现其实在C++中还是有很多选择:

  • CPPUnit:著名的XUnit系列产品之一,熟悉JUnitNUnit的开发人员可以很快上手。
  • CXXTest:需要进行预处理,需要安装PerlPython
  • Boost Test:功能强大,提供了自动注册和手动注册两种方式,更重要的是来自千锤百炼的Boost库。
  • Google TestGoogle在去年开源的测试框架,据说其内部上千个项目均采用该框架进行单元测试。

2. Boost Test起步

先来看一个简单的Boost Test示例(来自Boost文档):

1#define BOOST_TEST_MODULE example
  2
  3#include <boost/test/unit_test.hpp>
  4
  5 
  6
  7int add(int i, int j);
  8
  9 
 10
 11BOOST_AUTO_TEST_SUITE(minimal_test)
 12
 13 
 14
 15BOOST_AUTO_TEST_CASE(my_test)
 16
 17{
 18
 19    BOOST_CHECK(add(2, 2) == 5);
 20
 21    BOOST_REQUIRE(add(2, 2) == 4);
 22
 23    if(add(2, 2) != 4)
 24
 25        BOOST_ERROR("oops!");
 26
 27    if(add(2, 2) != 4)
 28
 29        BOOST_FAIL("oops!");
 30
 31    if(add(2, 2) != 4)
 32
 33        throw "oops!";
 34
 35    BOOST_CHECK_MESSAGE(add(2, 2) == 4, "add(..) result: " << add(2, 2));
 36
 37    BOOST_CHECK_EQUAL(add(2, 2), 4);
 38
 39}
 40
 41 
 42
 43BOOST_AUTO_TEST_SUITE_END()
 44
 45

 首先,需要定义#define BOOST_TEST_MODULE example或者#define BOOST_AUTO_TEST_MAIN,否则测试模块初始化函数需要手动实现;然后宏

  • 1
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值