catch2:一个好用的C++单元测试框架
Catch2 是一个 C++
的单元测试框架,但它也提供基本的微基准测试功能和简单的 BDD 宏(可参考开发人员看测试之TDD和BDD)。相比于其他测试框架,Catch2
使用起来只需要一个头文件,既简单又自然,测试时能自动注册,不必用有效的标识符再命名,另外断言看起来像普通的 C++ 代码,更详细的介绍见 Why Catch。
一、下载
相关版本见Release
选择好版本后在Assets里面下载catch.hpp
文件
二、使用
参照Tutorial
示例
- Test.cpp
#define CATCH_CONFIG_MAIN // 当前宏强制Catch在当前编译单元中创建 main(),这个宏只能出现在一个CPP文件中,因为一个项目只能有一个有效的main函数
#include <catch.hpp>
TEST_CASE("core::io::First", "[test]")
{
int a = 1;
REQUIRE(a == 1);
}
TEST_CASE("core::io::Second", "[test]")
{
int a = 1;
REQUIRE(a == 2);
}
宏#define CATCH_CONFIG_MAIN
定义了catch的main函数, 编译后在生成目录下会有一个可执行文件,直接执行即可运行测试用例及输出相关信息
也可以直接运行指定的某个测试用例, 可执行文件后面 + 测试名称
Visual Studio 显示测试窗口
Visual studio
打开测试窗口,可以参照TestAdapter_Catch2
安装后点击重新生成,打开菜单栏 测试 ==> 测试资源管理器就可以看到测试用例
三、参考链接
catch2:一个好用的C++单元测试框架
Catch2——C++测试框架(Quick Start)
Test Adapter for Catch2
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· AI与.NET技术实操系列:基于图像分类模型对图像进行分类
· go语言实现终端里的倒计时
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 25岁的心里话
· 闲置电脑爆改个人服务器(超详细) #公网映射 #Vmware虚拟网络编辑器
· 零经验选手,Compose 一天开发一款小游戏!
· 因为Apifox不支持离线,我果断选择了Apipost!
· 通过 API 将Deepseek响应流式内容输出到前端