fcfTest - 单元测试库 - 功能全面,却轻量简洁

发布日期:2026-03-23 10:03:38   浏览量 :0
发布日期:2026-03-23 10:03:38  
0

你好。我终于完成了 fcfTest 单元测试库的编写:https://github.com/fcf-framework/fcfTest

在此之前,该库仅包含一个宏;但现在它已完整实现了所有必要的功能。

其主要特色在于:所有测试均使用同一个断言宏——这一能力得益于该库是用 C++ 编写的。此外,集成该库只需包含一个头文件即可。

该库支持独立的命令行处理,允许指定测试执行顺序,最重要的是——支持三级层次化测试结构:节(Section)-> 组(Group)-> 测试(Test)。它还可以被编译为独立的动态链接库(DLL)。

此外,该库还包含一个简易日志记录器(fcf::NTest::Duration::err() … fcf::NTest::log() … fcf::NTest::trc())以及一个用于测量执行耗时的类(fcf::NTest::Duration)。

主 FCF_TEST 宏——适用于所有场景:

它允许编写包含变量状态监控的复杂检查。

 FCF_TEST(a==15, a);

在终端中,你将看到如下输出:

测试错误:a == 15  [文件:DIR_PATH/main.cpp:行号]
 变量值:
   a: 1

第一个参数是一个计算后的验证表达式,其余所有参数均为被观测的变量。

示例

接下来是该库的主要示例;附带的注释解释了其核心工作机制。

#include <vector>
#include <cmath>

// 必须定义 `FCF_TEST_IMPLEMENTATION` 宏,以便在包含头文件时暴露实现代码。
// 如果在项目中多次包含 `fcfTest/test.hpp` 文件,
// 则此宏应仅在一个 `.cpp` 文件中定义。
//
// 在使用动态链接库(DLL)时,必须在导出函数的主库中同时定义 
// `FCF_TEST_IMPLEMENTATION` 和 `FCF_TEST_EXPORT` 宏;
// 而在导入这些函数的库中,则只需定义 `FCF_TEST_IMPORT` 宏。
#define FCF_TEST_IMPLEMENTATION
#include <fcfTest/test.hpp>


// --- 测试声明 ---
FCF_TEST_DECLARE("数学" /*部分名称*/, 
                 "基本算术" /*组名称*/,
                 "加法" /*测试名称*/) {
  // 我们创建一个对象,用于测量 10,000 次迭代的执行耗时。
  fcf::

免责声明:本文内容来自互联网,该文观点不代表本站观点。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容,请到页面底部单击反馈,一经查实,本站将立刻删除。

关于我们
热门推荐
合作伙伴
免责声明:本站部分资讯来源于网络,如有侵权请及时联系客服,我们将尽快处理
支持 反馈 订阅 数据
回到顶部