C++ 单元测试框架 Boost Test BOOST_AUTO_TEST_CASE

Posted 软件工程小施同学

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了C++ 单元测试框架 Boost Test BOOST_AUTO_TEST_CASE相关的知识,希望对你有一定的参考价值。

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

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

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

————————————————
版权声明:本文为CSDN博主「Rain-晴天」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/rain_qingtian/article/details/11732435

https://blog.csdn.net/rain_qingtian/article/details/11732435

以上是关于C++ 单元测试框架 Boost Test BOOST_AUTO_TEST_CASE的主要内容,如果未能解决你的问题,请参考以下文章

带有 CLion 的 Boost.TEST:“测试框架意外退出”

Google开源C++单元测试框架Google Test

Google Test -- C++单元测试框架

Google Test -- C++单元测试框架

Boost.Test 的数据测试用例真的需要 C++11 吗?

C ++单元测试框架的比较[关闭]