Google Test语法教程 基础篇(一)

我的网站是 https://ctestcode.cn   ,有许多非常好用的C语言开发工具。
大家可以关注我的公众号 ctestcode 交流更多的C 语言开发的经验。

Google Test语法教程 基础篇(一)

程序员对C语言 C++,进行代码单元测试,最受欢迎的是使用Google Test框架。gtest语法灵活,高效,github上颇有人气。这篇文章将介绍gtest的基础的语法。google官方也有英文文档,但实战例子很少,
开发人员想自学使用也要花不少的精力,本文将结合实际代码,进行实战练习和演示。
 

语法: EXPECT_TRUE   期待值为真
使用场景: 真/假的条件进行判定 判定

//期待value等于2
EXPECT_TRUE(value==2);

语法: ASSERT_TRUE, 确保值为真,如果失败时,测试case会直接退出,而EXPECT_TRUE则不会。

终止断言普通判定验证
ASSERT_TRUE(条件);EXPECT_TRUE(条件);验证条件为真
ASSERT_FALSE(条件);EXPECT_FALSE(条件);验证条件为假

语法: EXPECT_EQ 期待值相等
使用场景:对数值条件进行比较判定

 

//期待b等于3
int b=3;  
EXPECT_EQ(b,3);  
终止断言普通判定验证
ASSERT_EQ(val1, val2);EXPECT_EQ(val1, val2);val1 == val2
ASSERT_NE(val1, val2);EXPECT_NE(val1, val2);val1 != val2
ASSERT_LT(val1, val2);EXPECT_LT(val1, val2);val1 < val2
ASSERT_LE(val1, val2);EXPECT_LE(val1, val2);val1 <= val2
ASSERT_GT(val1, val2);EXPECT_GT(val1, val2);val1 > val2
ASSERT_GE(val1, val2);EXPECT_GE(val1, val2);val1 >= val2

语法:EXPECT_STREQ 字符串比较

//期待GetValueStr返回值等于 字符串"TEST0"
EXPECT_STREQ(GetValueStr(),"TEST0");  
Fatal assertionNonfatal assertionVerifies
ASSERT_STREQ(str1,str2);EXPECT_STREQ(str1,str2);the two C strings have the same content
ASSERT_STRNE(str1,str2);EXPECT_STRNE(str1,str2);the two C strings have different contents
ASSERT_STRCASEEQ(str1,str2);EXPECT_STRCASEEQ(str1,str2);the two C strings have the same content, ignoring case
ASSERT_STRCASENE(str1,str2);EXPECT_STRCASENE(str1,str2);the two C strings have different contents, ignoring case

语法: EXPECT_FLOAT_EQ  浮点数比较

//期待GetValueFloat 返回值等于3.1
EXPECT_FLOAT_EQ(GetValueFloat(),3.1);  

语法: EXPECT_NEAR  浮点数范围比较
使用场景: 判断浮点数在某范围内

//期待GetValueFloat返回值,在2.9和3.9之间
EXPECT_NEAR(GetValueFloat(1),3.4,0.5); 

浮点数比较特殊,必须使用浮点数宏进行比较

Fatal assertionNonfatal assertionVerifies
ASSERT_FLOAT_EQ(val1, val2);EXPECT_FLOAT_EQ(val1, val2);the two float values are almost equal
ASSERT_DOUBLE_EQ(val1, val2);EXPECT_DOUBLE_EQ(val1, val2);the two double values are almost equal

下面的宏,可以进行浮点数范围比较

Fatal assertionNonfatal assertionVerifies
ASSERT_NEAR(val1, val2, abs_error);EXPECT_NEAR(val1, val2, abs_error);the difference between val1 and val2 doesn't exceed the given absolute error

基础语法介绍完毕,内容精炼,记住这些,就已经足够进行基础的代码单元测试,进行逻辑判断验证。

  • 7
    点赞
  • 15
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值