2024年C C++最新catch2测试框架学习_catch2中的单元测试test_case(2),2024年最新程序员面试题网站

img
img

网上学习资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。

需要这份系统化的资料的朋友,可以添加戳这里获取

一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!

3、catch2测试框架学习

3.1、概念

简单易用,只需要引入一个头文件

测试case可以分割为sections: 每个setcion都是独立的运行单元

BDD式的测试模式:可以使用Given-When-Then section来做BDD测试,行为测试,是一种从用户行为的角度出发的开发方法,他强调使用自然语言来描述系统的方法,并将这些描述转化为可执行的测试用例。

TDD:核心理念就是在编码之前编写好测试用例,

核心的assertion宏来做比较。用标准的C++运算符来做比较,但是可以分解表达式,记录表达式等号左侧和右侧的值。

3.2、实践

获取头文件

运行demo实践

#define CATCH_CONFIG_MAIN

#include "catch2/catch.hpp"

int Factorial( int number ) {
   return number <= 1 ? number : Factorial( number - 1 ) * number;  // fail
// return number <= 1 ? 1      : Factorial( number - 1 ) * number;  // pass
}

TEST_CASE( "Factorial of 0 is 1 (fail)", "[single-file]" ) {
    REQUIRE( Factorial(0) == 1 );
}

TEST_CASE( "Factorials of 1 and higher are computed (pass)", "[single-file]" ) {
    REQUIRE( Factorial(1) == 1 );
    REQUIRE( Factorial(2) == 2 );
    REQUIRE( Factorial(3) == 6 );
    REQUIRE( Factorial(10) == 3628800 );
}


解析代码:

#define CATCH_CONFIG_MAIN ,这个宏定义了catch的main函数。

TEST_CASE表示一次测试用例在里面实现单元测试逻辑:并且也可以为其取名字或者加标签。

测试名称,必填,字符串类型。可填写任意字符串,需要保证全局唯一。tags,标签名,可选,字符串类型。字符串中需要使用方括号将标签名包含,可填写多个标签。标签名无需全局唯一。标签的意义在于可以使用命令参数指定某个系列的相同标签的测试用例去执行。还有一些特殊标签可以参考Catch2/docs/test-case-and-sections.md at devel ·catchorg/Catch2 (github.com)

img
img

网上学习资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。

需要这份系统化的资料的朋友,可以添加戳这里获取

一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!

快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!**

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值