使用CLion创建Cmake项目,使用GoogleTest和GoogleMock对代码进行测试

简介: 使用CLion创建Cmake项目,使用GoogleTest和GoogleMock对代码进行测试

@[toc]

1、环境准备

  • 注意版本匹配,我本地是g++ 8.1.0 的,最开始装了GoogleTest最新版1.10.0结果发现不能用,又回去下载旧的版本。
  • g++ 8.1.0 应该可以使用 Google Test 1.8.1 版本。

Github下载地址:,一般下第一个就行了。

2、CLion创建项目

  • 创建项目,测试可以运行。

  • 修改CMakeLists.txt文件

# CMakeLists.txt

# 本项目的Cmake配置
cmake_minimum_required(VERSION 3.16)
project(MyProject)

# 1、设置 Google Tesk 的版本号,头文件路径,链接库路径
set(GTEST_VERSION 1.10.0)
add_subdirectory(googletest)
include_directories(googletest/include)

# 2、设置 Google Mock 的路径,头文件路径,链接库路径
set(GMOCK_DIR googletest/googlemock)
include_directories(${GMOCK_DIR}/include)
link_directories(${GMOCK_DIR}/build)

# 3、将测试代码添加到可执行文件中
add_executable(MyTest main.cpp q.cc q.h)

# 4、链接 googletest 库
target_link_libraries(MyTest gtest gtest_main)

# 5、链接 Google Mock 的链接库
target_link_libraries(MyTest gmock gmock_main)
  • 然后在当前目录新建googletest文件夹,把下载到的压缩包整个解压进去

3、编写测试用例

注意看这里的代码:

# 3、将测试代码添加到可执行文件中
add_executable(MyTest main.cpp q.cc q.h)

main.cpp,这里是测试框架。

#include <gtest/gtest.h>

TEST(HelloTest, BasicAssertions) {
   
    EXPECT_STRNE("hello", "world");
    EXPECT_EQ(7 * 6, 42);
}

q.cc,这里是要测试的代码

#include "add.h"
int add(int n1,int n2)
{
   
    return n1+n2;
}

q.h,这里是要测试的代码的函数声明

//
// Created by gwj11 on 2023/6/25.
//

#ifndef MYPROJECT_ADD_H
#define MYPROJECT_ADD_H
int add(int n1,int n2);


#endif //MYPROJECT_ADD_H

这样就可以回到main.cpp中运行了。

4、复杂测试用例

  • 像下面这种,这样的四件套,github下载过来的,也是可以用的

  • 一个错误的测试例子。可以跳转显示具体的报错位置。

目录
相关文章
|
19小时前
|
监控 搜索推荐 机器人
iLogtail原有的测试体系不健全,如何保证重构后的代码不引入兼容性问题
iLogtail原有的测试体系不健全,如何保证重构后的代码不引入兼容性问题?
7 1
|
4天前
|
测试技术 开发者
单元测试如何增加代码变更的信心
单元测试如何增加代码变更的信心
|
4天前
|
测试技术
CodeReview是否关注代码的测试覆盖率
CodeReview是否关注代码的测试覆盖率
|
16天前
|
Java 测试技术 Maven
在Java项目中集成单元测试与覆盖率工具
在Java项目中集成单元测试与覆盖率工具
|
17天前
|
Java 测试技术 数据库
在Spring Boot项目中集成单元测试的策略
在Spring Boot项目中集成单元测试的策略
支付系统---微信支付14----创建案例项目---介绍,第二步引入Swagger,接口文档和测试页面生成工具,定义统一结果的目的是让结果变得更加规范,以上就是谷粒项目的几个过程
支付系统---微信支付14----创建案例项目---介绍,第二步引入Swagger,接口文档和测试页面生成工具,定义统一结果的目的是让结果变得更加规范,以上就是谷粒项目的几个过程
|
20天前
|
数据库
获取本地某文件中的以.jpg文件的名字,并导入数据库的测试代码
获取本地某文件中的以.jpg文件的名字,并导入数据库的测试代码
|
22天前
|
Java 测试技术 开发者
Java中设计可测试的代码的最佳实践
Java中设计可测试的代码的最佳实践
|
24天前
|
JSON JavaScript 测试技术
Postman接口测试工具详解
Postman接口测试工具详解
33 1
|
13天前
|
XML JSON 测试技术
Postman接口测试工具详解
📚 Postman全攻略:API测试神器!📚 发送HTTP请求,管理集合,写测试脚本,集成CI/CD。从安装配置到环境变量、断言、数据驱动测试,一步步教你如何高效测试RESTful API。实战案例包含GET、POST、PUT、DELETE请求。用Newman在命令行跑集合,自动化测试不发愁!👉 [洛秋小站](https://www.luoqiu.site/) 学更多!🚀
28 1