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++单元测试框架
开发人员看测试之TDD和BDD
Catch2——C++测试框架(Quick Start)
Test Adapter for Catch2

posted @   半夜打老虎  阅读(1767)  评论(0编辑  收藏  举报
编辑推荐:
· AI与.NET技术实操系列:基于图像分类模型对图像进行分类
· go语言实现终端里的倒计时
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
阅读排行:
· 25岁的心里话
· 闲置电脑爆改个人服务器(超详细) #公网映射 #Vmware虚拟网络编辑器
· 零经验选手,Compose 一天开发一款小游戏!
· 因为Apifox不支持离线,我果断选择了Apipost!
· 通过 API 将Deepseek响应流式内容输出到前端
点击右上角即可分享
微信分享提示