目录
- 一、简单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]。
运行结果: 相关含义已经在上文介绍过了,本文不再进行重点介绍。
在gmock/gtest中,断言的宏可以理解为分为两类,一类是ASSERT系列,一类是EXPECT系列。 一个直观的解释就是:
- ASSERT_* 系列的断言,当检查点失败时,退出当前函数(注意:并非退出当前案例);
- EXPECT_* 系列的断言,当检查点失败时,继续往下执行;
常用的断言如下:
ASSERT宏EXPECT宏功能ASSERT_TRUEEXPECT_TRUE判真ASSERT_FALSEEXPECT_FALSE判假ASSERT_EQASSERT_EQ相等……… 2.2 流所有ASSERTION宏都支持使用运算符(如
关注
打赏
最近更新
- 深拷贝和浅拷贝的区别(重点)
- 【Vue】走进Vue框架世界
- 【云服务器】项目部署—搭建网站—vue电商后台管理系统
- 【React介绍】 一文带你深入React
- 【React】React组件实例的三大属性之state,props,refs(你学废了吗)
- 【脚手架VueCLI】从零开始,创建一个VUE项目
- 【React】深入理解React组件生命周期----图文详解(含代码)
- 【React】DOM的Diffing算法是什么?以及DOM中key的作用----经典面试题
- 【React】1_使用React脚手架创建项目步骤--------详解(含项目结构说明)
- 【React】2_如何使用react脚手架写一个简单的页面?