gtest基础使用01:编写第一条单元测试用例

通过gtest编写第一条单元测试用例

写在前面

  1. 最近正在学习单元测试,对于一个零基础的人来说,还是蛮痛苦的
  2. 好记性不如烂笔头,把自己趟出来的路记录下来,提升自己的同时也可能帮到别人

基础知识

  1. gtest是Google开发的跨平台C++单元测试框架
  2. Visual Studio 2019已经集成了gtest

创建项目

  1. 打开VS 2019,创建新项目
  2. 搜索关键字 Google,可以得到 Google Test的项目模板:Write C++ unit tests using Google Test.
    在这里插入图片描述
  3. 选择项目模板Google Test,点击下一步
  4. 配置项目名称和位置,点击创建
  5. 测试项目配置如下
    在这里插入图片描述
  6. 等待VS创建好新项目:如图所示,创建好了名为myGTest的项目
    在这里插入图片描述

编写用例

  1. 在test.cpp中编写函数Factorial() ,并编写Factorial() 的单元测试用例
#include "pch.h" 

int Factorial(int n) {
    int result = 1;
    for (int i = 1; i <= n; i++) {
        result *= i;
    }

    return result;
}

TEST(TestFactorialFunc, FirstGTest) 
{
    EXPECT_EQ(1, Factorial(1)); 
    EXPECT_EQ(24, Factorial(4));
}
  1. 通过观察单元测试用例 TEST(TestFactorialFunc, FirstGTest) 可以看到,通过gtest编写测试用例还是蛮方便的
    (1)我们需要使用TEST这个宏,它有两个参数,Google对这两个参数的解释为:TEST[TestCaseName,TestName],TestCaseName意味着测试用例集,TestName是TestCaseName的用例
    (2)对检查点的检查,我们使用了EXPECT_EQ这个宏,这个宏用来比较两个数字是否相等
    (3)Google打包了一系列EXPECT_* 和 ASSERT_* 的宏,EXPECT和ASSERT系列的区别就是:EXPECT_* 失败时,测试用例继续执行;ASSERT_*失败时,同一用例后面的语句将不再执行
TEST(TestFactorialFunc, FirstGTest) 
{
    EXPECT_EQ(1, Factorial(1)); 
    EXPECT_EQ(24, Factorial(4));
}
  1. 执行结果如下图所示
    在这里插入图片描述

一些总结

  1. 本文简单说明了gtest最基础的使用。gtest还有很多高级的用法,在后面的学习中继续总结
  2. 例子中使用TEST宏编写了一条测试用例,使用EXPECT_EQ设置了检查点
  3. 对于gtest测试框架,我们不用投入精力到测试框架本身,只需要关注测试用例的设计和编写
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值