4.4 使用Boost Test进行单元测试
NOTE:此示例代码可以在 https://github.com/dev-cafe/cmake-cookbook/tree/v1.0/chapter-04/recipe-04 中找到,包含一个C++的示例。该示例在CMake 3.5版(或更高版本)中是有效的,并且已经在GNU/Linux、macOS和Windows上进行过测试。
Boost Test是在C++社区中,一个非常流行的单元测试框架。本例中,我们将演示如何使用Boost Test,对求和示例代码进行单元测试。
准备工作
main.cpp
、sum_integers.cpp
和sum_integers.hpp
与之前的示例相同,将更新test.cpp
作为使用Boost Test库进行的单元测试:
具体实施
以下是使用Boost Test构建项目的步骤:
先从
CMakeLists.txt
开始:检测Boost库并将
cpp_test
链接到它:最后,定义单元测试:
下面是需要配置、构建和测试代码的所有内容:
工作原理
使用find_package
来检测Boost的unit_test_framework
组件(参见第3章,第8节)。我们认为这个组件是REQUIRED
的,如果在系统环境中找不到它,配置将停止。cpp_test
目标需要知道在哪里可以找到Boost头文件,并且需要链接到相应的库;它们都由IMPORTED
库目标Boost::unit_test_framework
提供,该目标由find_package
设置。
更多信息
本示例中,我们假设系统上安装了Boost。或者,我们可以在编译时获取并构建Boost依赖项。然而,Boost不是轻量级依赖项。我们的示例代码中,我们只使用了最基本的设施,但是Boost提供了丰富的特性和选项,有感兴趣的读者可以去这里看看:http://www.boost.org/doc/libs/1_65_1/libs/test/doc/html/index.html 。
Last updated