您当前的位置: 首页 >  测试工具

wendy_ya

暂无认证

  • 1浏览

    0关注

    342博文

    0收益

  • 0浏览

    0点赞

    0打赏

    0留言

私信
关注
热门博文

C++开发测试工具gmock的使用详解

wendy_ya 发布时间:2022-03-02 14:46:50 ,浏览量:1

目录
    • 一、简单Demo
    • 二、断言
      • 2.1 ASSERT和EXPECT
      • 2.2 流
    • 三、测试TEST()
    • 四、调用测试和main()

上文(C++开发测试工具gmock的安装与使用超详解)介绍了gmock的安装、配置与基本使用案例,本文将详细介绍一下gmock的基本语法,结合上文一起食用效果更佳哦~

一、简单Demo

首先来编写一个简单Demo,编写代码之前,首先需要将解决方案的平台与目标程序一致,这里选择的是x64,然后版本也要与目标程序一致,这里选择的是release版本。 在这里插入图片描述 新建一个头文件,命名为demo.h,声明一个类Foo,内部定义一个公共函数Fun,代码如下:

#pragma once


class Foo
{
public:
	virtual int Fun(int i, int j);
};

在demo.cpp中实现该函数功能:

#include"demo.h"

int Foo::Fun(int i, int j)
{
	return i + j;
}

新建一个测试文件,命名为demo_test.cpp,代码如下:

#include "gmock\gmock.h"
#include"gtest\gtest.h"
#include"demo.h"
using namespace testing;

TEST(DemoTest,Fun)
{
	Foo f;
	EXPECT_EQ(3, f.Fun(1, 2));
}




int main(int argc, char** argv)
{
	testing::InitGoogleMock(&argc, argv);
	return RUN_ALL_TESTS();
}

这里有两个宏TEST和EXPECT_EQ, TEST这个宏,它有两个参数,这两个参数的解释为:[TestSuiteName,TestCaseName]。

运行结果: 在这里插入图片描述 相关含义已经在上文介绍过了,本文不再进行重点介绍。

二、断言 2.1 ASSERT和EXPECT

在gmock/gtest中,断言的宏可以理解为分为两类,一类是ASSERT系列,一类是EXPECT系列。 一个直观的解释就是:

  • ASSERT_* 系列的断言,当检查点失败时,退出当前函数(注意:并非退出当前案例);
  • EXPECT_* 系列的断言,当检查点失败时,继续往下执行;

常用的断言如下:

ASSERT宏EXPECT宏功能ASSERT_TRUEEXPECT_TRUE判真ASSERT_FALSEEXPECT_FALSE判假ASSERT_EQASSERT_EQ相等……… 2.2 流

所有ASSERTION宏都支持使用运算符(如

关注
打赏
1659256378
查看更多评论
立即登录/注册

微信扫码登录

0.0791s