GoogleTest 学习笔记(一)

基本术语

  1. 断言(assert)
    使用断言验证被测代码的行为,检查语句是否为真,
    作用:如果它的条件返回错误,则终止程序运行
  2. 基本断言
致命断言非致命断言验证
ASSERT_TRUE(condition)EXPECT_TRUE(condition)condition为true
ASSERT_FALSE(condition)EXPECT_FALSE(condition)condition为false

两者的区别为:当他们失败时,ASSERT产生一个致命错误,从当前函数退出,EXPECT产生一个非致命错误,允许函数继续运行,出现断言失败,意味着测试失败
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

4 浮点数比较

致命断言非致命断言验证
ASSERT_FLOAT_EQEXPECT_FLOAT_EQ单精度浮点值相等
ASSERT_DOUBLE_EQEXPECT_DOUBLE_EQ双精度浮点值相等
ASSERT_NEAREXPECT_NEAR浮点值接近(第3个参数为误差阈值)

编写单元测试的步骤

常规的测试单元可以由3个文件构成

sample.h
sample.c
sampleTest.c

其中sample.c 中存放被测试的函数

int ADD(int a,int b)
{
    int c;
    c = a+b;
    return c;
}

sampleTest中存放测试中测试代码

下面写一个简单的测试代码

#include<gtest/gtest.h>
extern int ADD(int a,int b);
TEST(testCase,case0)
{
   EXPECT_EQ(3,ADD(1,2))
}
TEST(testCase,case1)
{
   EXPECT_EQ(8,ADD(4,5))
}

gtest通过测试用例对测试结果进行分组,即TEST()的第一个参数应该是相同的

调用测试
定义完测试后,可以使用RUN_ALL_TEST()运行测试,如果测试成功则返回0,否则返回1

  • 2
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值