c++ gtest入门

跨平台C++单元测试框架——GTest 1、简介 GTest是google公司发布的一个跨平台的(Liunx、Mac OS X、Windows、Cygwin、Windows CE and Symbian)C++单元测试框架。它提供了丰富的断言、致命和非致命判断、参数化、死亡测试等等。 使用gtest时,就是编写断言(assertions),断言语句会检测条件是否为真。一个断言可存在三种结果:success(成功),nonfatal failure(非致命失败),或 fatal failure(致命失败)。当出现致命... 阅读详情

1 gtest安装

# 克隆代码
git clone git@github.com:google/googletest.git
# 安装
cd googletest
cmake .
make
make install

2 使用

2.1 添加cmakelists.txt

cmake_minimum_required(VERSION 3.25)

include_directories("/usr/local/mysql/include")
include_directories("/usr/local/mysql/lib")


set (PROJECT_NAME cpplearn)
PROJECT(${PROJECT_NAME})


set(CMAKE_CXX_STANDARD 14)

find_package(GTEST REQUIRED)


find_package(OpenCV REQUIRED)
include_directories(${OpenCV_INCLUDE_DIRS})

#add_subdirectory(subprojects/faiss)

#add_subdirectory(subprojects/googletest)

add_executable(cpplearn
        hello.cpp)

target_link_libraries(cpplearn ${OpenCV_LIBS})
target_link_libraries(cpplearn "/usr/local/mysql/lib/libmysqlclient.dylib")
target_link_libraries(${PROJECT_NAME} ${GTEST_LIBRARIES})

2.2 代码


#include <iostream>


#include <stdio.h>
#include <mysql.h>
#include <gtest/gtest.h>
using namespace cv;
using namespace std;


int add(int a, int b) {
    return a + b;
}

TEST(test, c1) {
    EXPECT_EQ(3, add(1, 2));
    EXPECT_EQ(12, add(2, 6));
}


int main(int argc, char ** argv)
{
    cout << "hello world  ! \n" ;

    testing::InitGoogleTest(&argc, argv);
    return RUN_ALL_TESTS();
}


基于gtest、mockcpp写C++LLT测试入门级教程 一、googletest 下载地址:https://github.com/google/googletest 编译googletest: 在根目录下执行 cmake . make 编译出的libgtest.a后面用 注意:有可能编译会失败,是gtest需要C++11以上 可以在顶级的CMakeList.txt里加入 set(CMAKE_CXX_STANDARD 11) 二、mockcpp 下载地址:https://code.google.com/archive/p/mockcpp/downloads 编译 阅读详情

相关推荐

如何利用MATLAB建立Lotka-Volterra模型及其改进模型

今天我们要说的就是利用MATLAB对常微分方程进行数值求解的实例应用-Lotka-Volterra模型及其改进模型。20世纪40年代,Lotka(1925)和Volterra(1926)奠定了种间竞争关系的理论基础,他们提出的种间竞争方程对现代生态学理论的发展有着重大影响。

Nick的博客 2万+

【C++中级篇】gtest的使用方法及cmake配置

在一项c++工程中,会存在很多类,很多功能方法,如果每个对外的接口方法都通过在业务中发现问题,是一件相当糟糕的事儿,而且效率低下。如果针对每个接口都设计一个主函数进行验证,需要运行很多程序,为解决这个问题,单元测试模块应运而生,本期探讨下由google开发的单元测试模块gtest的使用方法。

行走的漂流瓶的博客 4514

AI医疗影像诊断工具2025 完整教程

本教程所述工具均为辅助诊断设备,不可替代执业医师判断。部署使用需遵守当地医疗器械管理法规。推荐开源框架组合:代码太多打包上传网盘了 自行下载。2025年的AI医疗影像诊断工具将以。

m0_60084632的博客 2029

玩转C++单元测试之快速上手gtest

文章目录1.gtest简介2.gtest原理3.gtest安装3.1使用dnf进行安装3.2编译gtest项目源码4.gtest内置测试相关的宏5.gtest断言6.自定义测试失败信息输出7.gtest demo7.1简单用法7.2作为测试类使用7.2.1定义一个要被测试的类7.2.2定义测试类7.3执行所有测试用例8.gtest测试类的私有成员8.1加宏编译8.2 FRIEND_TEST8.3使用pimpl重构被测代码9.gtest-demo git链接 1.gtest简介 gtest是一个跨平台的(Li

不经一翻彻骨寒,怎得梅花扑鼻香 1万+

SpringBoot 中 @RequestMapping 及衍生注解的全面解析与实践

本文全面解析Spring Boot中@RequestMapping及其衍生注解的使用,涵盖核心功能、HTTP方法特定注解(@GetMapping/@PostMapping等)、属性详解(路径/参数/头信息等)以及路径变量处理。文章详细介绍了注解的组合使用、继承特性、版本控制策略等高级应用,并针对405/404等常见错误提供解决方案。通过学习这些注解的规范用法,开发者能够构建符合RESTful风格的API接口,提升代码可读性和可维护性。建议优先使用HTTP方法特定注解,合理规划URL结构,并注意避免路径冲突。

Java&AI小吕布的博客 2037

大模型面试题34:Transformer的Encoder和Decoder区别与协作

Encoder:双向自注意力,专注理解输入,输出语义特征;Decoder:掩码自注意力+编码器-解码器注意力,专注生成输出,实现语义对齐。

叫好与叫座虽然不是对立面,但想在同一个作品中达到双重效果很难。 813

玩转Google开源C++单元测试框架Google Test系列(gtest)之七 - 深入解析gtest

了解了gtest代码后,猛然发现gtest不就是这样吗,同时gtest也给了我很多惊喜,因此,我对gtest的评价是:功能强大,设计简单,使用方便。本文算是抛砖引玉吧,只能是对gtest的整体结构的一些介绍,想要了解更多细节最好的办法还是看gtest源码,如果你看过gtest源码,你会发现里面的注释非常的详细!3. Test 我们自己编写的,或通过TEST,TEST_F等宏展开后的Test对象,管理着测试案例的前后事件,具体的执行代码TestBody。

梦心之魂的博客 3128

win11本地部署openclaw实操第1集

OpenClaw 是一款开源、本地优先、可自托管的 AI 智能体(AI Agent)网关 / 自动化框架,核心是让 AI 从 “只聊天、给建议” 变成 “能在你电脑上真做事” 的数字助手。

weixin_44626085的博客 7128

【C++】Google Gtest测试框架的使用

本文首发于gtest模块的安装参考站内教程本文使用的gtest版本为1.14.0;

慕雪华年的博客 4193

直流有刷电机控制 - 驱动电路(二)

1.如图所示为最常见的推挽驱动电路,我附加了具有正反转功能的电机驱动控制,正反转是由两个继电器组成。使用推挽电路来驱动NMOS管时充电电流和放电电流都很大,因此NMOS管导通快,关断也快,而且NMOS温度不会很高。下面来介绍一下该电路的原理。(1)PWM_MCU是由单片机给出的PWM波信号,该信号是由一些列高低电平的方波构成。当信号为高电平的时候Q3导通,经过R47再到Q5的g极,此时mos导通,如果是K1闭合是正转那么K2闭合就是反转。(2)当PWM低电平时使得Q3关断,Q6导通。

u011030644的博客 4720

GNU Radio系列教程(一):什么是GNU Radio?为什么我需要用GNU Radio?

目录 一、什么是软件无线电? 二、GNU Radio到底能做什么事情? 三、我如果不精通编程,还能用GNU Radio吗? 四、GNU Radio使用需要授权吗? 五、基于GNU Radio,人们已经做了取得了哪些成果? 六、数字信号处理、基带、时钟同步…这些名词是什么意思? 七、有用的链接和联系方式 GNU Radio是一个免费的开源软件工具包,该工具包提供了可用于软件无线电的信号处理模块。基于一些通用的射频前端设备,该工具包可以用来实现软件无线电系统。此外,该工具包也可以用于单纯...

无线通信实验室 1万+

[C++] gtest入门教程

gtest 文章目录gtest前言使用头文件和库命令行选项测试普通测试自定义测试类类内共享对象全局共享对象自定义测试模板值测试模板 参数化测试类型测试模板自省/反射检查值检查数值C字符串自定义值检查1 1型检查函数 简单函数检查自定义值检查2 2型检查函数自定义值检查3 3型检查函数gmock扩展检查类型检查编译期类型检查程序流检查普通异常检查崩溃桩对象 (gmock)自定义对象的流输出测试流程监...

airaou 2万+

robosuite 入门教程(一)安装与基本用法

摘要:Robosuite是基于MuJoCo的模块化机器人仿真框架,提供标准化基准测试环境和多样化机器人控制功能。作为ARISE计划的一部分,该框架支持强化学习、模仿学习等算法研究,包含程序化环境生成、多模态传感器、多种控制器及遥操作设备。支持macOS/Linux系统,提供详细安装指南和功能演示脚本,包括随机动作测试、控制器验证、域随机化等。最新版本v1.5新增人形机器人支持、全身控制器和照片级渲染功能,旨在降低机器人学习研究门槛,促进算法开发与评估。

2506_90492529的博客 1267

【C/C++】C++测试神器:gtest入门

`gtest`(Google Test)是 Google 开源的 C++ 单元测试框架,具有简洁的语法和强大的断言功能,常与 `gmock` 搭配使用进行完整的单元测试。

YZJincsdn的博客 756

C# WinForm 基于DirectShow.dll编写的程序,可边预览边保存视频,音频和图片

基于微软的DirectShow.dll的二次开发1.自动识别连接的摄像头跟麦克风且可以对其进行选择(默认选中第一个)2.可录制wmv和avi两种格式的视频并且都带有音频,avi可以录制的分辨率和帧数进行选择,wmv默认进行了淸晰度优化如不喜欢可去除代码中有相关提示3.可在预览点开之后进行拍照,也可边录制视频边拍照4.添加了视频和音频的压缩功能(酌情使用)这次二次开发发现C#对DirectShow的相关信息太少,这次做完也不敢藏私共享出来,还望大家指正

Camera2Demo

在Camera2 的基础上进行封装,使得Camera2一堆初始化逻辑与Activity分离,降低耦合度,完成预览拍照并保存的操作

Linux环境gtest入门,Linux环境下C++单元测试Gtest 入门

Linux环境下C++单元测试Gtest 入门Linux环境下C++单元测试Gtest 入门简介Goodtest是一款强大的C++单元测试框架,可以在Linux,Windows上等多种平台上互动可以在这里下载:https://github.com/google/googletest然后按照教程进行配置就可以了ASSERT_*是fatal判断,一旦为false,程序将终止,还可能发生内存泄漏EXPE...

weixin_28703489的博客 454

Devexpress16.2.6破解工具

Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具

c++ 测试框架gtest的入门

第一次接触和使用c++的测试框架,在这里记录一下 参考资料 http://www.cnblogs.com/coderzh/archive/2009/04/06/1426755.html 打算试试google test,简称gtest,首先需要下载这个源码,是开源的 https://github.com/google/googletest/tree/release-1.7.0 我下这个版本的 需要...

m0_37847176的博客 2116

廖雪峰Python教程[完整版]

廖雪峰的python教程整理的,已经排好版了,而且还是完整的,适合小白

【入门到精通】鸿蒙next应用开发:GTest测试C++实战案例

本示例主要介绍如何在HarmonyOS NEXT应用中使用GTest测试C++代码。

m0_73088370的博客 1066

C++单元测试gtest入门

C++单元测试gtest入门

我的博客 463

Google C++单元测试框架(Gtest)系列教程之一——入门

引言 本文将先介绍单元测试的相关概念,然后引入Google的开源C++单元测试框架Gtest,最后通过编译、运行Gtest自带的一个测试样例,介绍如何在Unix/Linux下使用Gtest。 单元测试 说到单元测试,大家应该不会陌生。作为软件开发过程中最低级别的测试环节,单元测试一般由编码人员自己完成,它的目的是隔离程序部件,并证明这些单个部件满足预期的功能。在静态程序分析、代码检视

轻锋的专栏 4136

C++单元测试实战:GTest与GMock从入门到精通

单元测试是软件工程中验证代码逻辑正确性的基础实践,其核心原理在于隔离被测代码,通过断言验证预期行为。在C++这类系统级语言中,由于模块间依赖复杂,直接测试常受限于外部服务、数据库或网络等不稳定因素,导致测试缓慢且脆弱。为解决这一痛点,模拟(Mocking)技术应运而生,它通过创建虚拟对象来替代真实依赖,从而实现对目标代码的孤立、快速测试。Google Test(GTest)作为成熟的C++测试框架,提供了丰富的断言和测试组织功能;而Google Mock(GMock)则专门用于创建和管理模拟对象,允许开发者

weixin_34194087的博客 332

C++ TDD 入门:从搭建 GTest 框架到第一个示例

你想要入门 C++ 语言的 TDD 实践,核心是先搭建**测试框架环境**,再遵循「红-绿-重构」的循环落地最小功能单元。下面我会以 **Google Test(GTest,C++ 最主流的 TDD 测试框架)** 为例,提供从「环境搭建→第一个 TDD 示例→完整循环落地」的分步指南,适配 Linux(CentOS/Ubuntu)环境,新手也能快速上手。

Yang的博客 400

Linux环境下C++单元测试Gtest 入门

简介 Goodtest是一款强大的C++单元测试框架,可以在Linux,Windows上等多种平台上互动 可以在这里下载:https://github.com/google/googletest然后按照教程进行配置就可以了 ASSERT_*是fatal判断,一旦为false,程序将终止,还可能发生内存泄漏 EXPECT_*为false后测试程序会输出相关信息,并继续运行 用户自定义的类如...

聆听风雨的博客 1901

C++ Google Test(gtest)单元测试入门教程

断言宏说明检查一元谓词 pred(a) 是否为真,失败时打印参数值同上,失败立即终止检查二元谓词 pred(a, b) 是否为真同上,失败立即终止检查三元谓词 pred(a, b, c) 是否为真同上,失败立即终止检查四元谓词 pred(a, b, c, d) 是否为真同上,失败立即终止检查五元谓词 pred(a, b, c, d, e) 是否为真同上,失败立即终止Google Test 是 C++ 生态中最流行的单元测试框架之一。断言宏丰富:数值、字符串、浮点数、异常、崩溃都能测。测试固件。

Ash_seven7的博客 183
上一篇: C++ non-aggregate cannot be initialized
下一篇: 二进制流转byte流
vive921
博客等级 码龄8年 10粉丝 25原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值