代码单元测试:gtest
Gtest是Google公司发布的一款非常优秀的开源C/C++单元测试框架,已被应用于多个开源项目及Google内部项目中,知名的例子包括ChromeWeb浏览器、LLVM编译器架构、ProtocolBuffers数据交换格式及工具等。在我们开发规范的代码时候,要想办法构造简单的测试用例进行调试,因此针对gtest中的三种事件机制进行简单的分析。
Features
- An xUnit test framework.
- Test discovery.
- A rich set of assertions.
- User-defined assertions.
- Death tests.
- Fatal and non-fatal failures.
- Value-parameterized tests.
- Type-parameterized tests.
- Various options for running the tests.
- XML test report generation.
Platforms
Google test has been used on a variety of platforms:
- Linux
- Mac OS X
- Windows
- Cygwin
- MinGW
- Windows Mobile
- Symbian
- PlatformIO
github:https://github.com/google/googletest
doc:https://github.com/google/googletest/blob/master/googletest/docs/primer.m
参考:
- http://www.cnblogs.com/coderzh/archive/2009/04/06/1426755.html
- https://www.cnblogs.com/jycboy/p/6057677.html
- https://blog.csdn.net/vanturman/article/details/80930159
1. 安装
- git clone https://github.com/google/googletest.git
- cd googletest/
- mkdir build
- cd build/
- cmake ..
- make
- sudo make install
2. 测试
2.1 代码test.c
#include <iostream>
#include <gtest/gtest.h>int add(int a, int b)
{return a + b;
}TEST(testCase, test0)
{EXPECT_EQ(add(2, 3), 5);
}int main(int argc, char **argv)
{testing::InitGoogleTest(&argc, argv);return RUN_ALL_TESTS();
}
2.2 编译
g++ test.cc -lgtest -lpthread -std=c++11
Note: -lpthread需要放在-lgtest后,否则编译会出错
2.3 测试
执行:a.out
baoli@ubuntu:~/tools/gtest/mytest$ ./a.out
[==========] Running 1 test from 1 test suite.
[----------] Global test environment set-up.
[----------] 1 test from testCase
[ RUN ] testCase.test0
[ OK ] testCase.test0 (0 ms)
[----------] 1 test from testCase (0 ms total)[----------] Global test environment tear-down
[==========] 1 test from 1 test suite ran. (0 ms total)
[ PASSED ] 1 test.
代码单元测试:gtest相关推荐
- 第二章 UT单元测试——GTest框架实例
系列文章目录 第一章 UT单元测试--GoogleTest通用构建说明 第二章 UT单元测试--GTest框架实例 文章目录 系列文章目录 前言 一.环境配置 二.使用步骤 1.添加待测源码 2.修改 ...
- 51、前端代码单元测试怎么做?
我们专栏课程的知识部分已经告一段落了.今天,我来集中解决一下大家在学习中遇到的问题,我争取用快问快答的形式,咱们多回答一些问题. 1. 前端代码单元测试还是非常有必要的,不知道老师这一块是怎么做的,能 ...
- 代码单元测试工具:gmock
Mock,更确切地说应该是Mock Object.当我们在单元测试.模块的接口测试时,当这个模块需要依赖另外一个/几个类,而这时这些类还没有开发好,这时我们就可以定义Mock对象来模拟那些类的行为. ...
- 解决C++代码单元测试中的难题-不可验证和IO调用
在做C++程序的单元测试时,大家经常会遇到两个问题: 1.不方便验证测试结果,原因是因为不可访问保护和私有类成员 2.对于需要访问的connect.receive.send等不好绕过 这里介绍两种方法 ...
- 测试专员如何编写优秀的测试代码·单元测试篇
无论如何组织测试,无论有多少测试,如果你不能信任.维护以及阅读它们,这些测试就几乎没有价值.要成为优秀的测试,它们应该同时具有如下三个属性. 可靠性:开发人员希望运行的测试可靠,能够对测试结果有信心. ...
- 微信推文图片间距有缝的代码_使用记录接缝进行旧代码单元测试
微信推文图片间距有缝的代码 在大多数情况下,使用遗留代码可能很困难. 但是,当涉及到添加新功能,重构或维护您不熟悉的代码时,它可能会变得势不可挡. 如果您已经使用敏捷技术几年了,并且突然间您面对大量的 ...
- Linux环境下C++单元测试Gtest 入门
简介 Goodtest是一款强大的C++单元测试框架,可以在Linux,Windows上等多种平台上互动 可以在这里下载:https://github.com/google/googletest然后按 ...
- maven中实现代码单元测试覆盖率统计
1.首先需要对统计模块的POM.XML增加如下字段: <build> <plugins> <plugin> <groupId>org.codehaus. ...
- 两步实现在C代码中快速集成gtest进行单元测试
我平时的技术支持工作主要是快速阅读和调试代码,没有太多的代测试和验证需求,所以对单元测试一直没有留意. 直到我开始从头写一些密码学的基本功能代码,例如各种哈希算法,分组密码算法,流密码算法,分组密码的 ...
最新文章
- ida 中segment中的extern是什么
- Jenkins cve-2016-0792 漏洞复现 Xstream 反序列化漏洞
- python3 字符串替换 replace translate re.sub
- 基于MFCC系数的欧氏距离测量
- ES6-6 - this指向、箭头函数基本形式、rest运算符
- 发布react项目到linux服务器,nginx上部署react项目的实例方法
- 阿里99大促 | 模型识别背后的样本生成
- 日常问题———安装新版zookeeper 出现Starting zookeeper ... FAILED TO START
- Hbase入门——安装
- 一些上流的CSS3图片样式
- libevent: evbuffer缓冲
- Android基础(四) Fragment Part 1
- 【NOIP2012】【Luogu1075】质因数分解(模拟)
- HSRP热备份路由协议 、 STP生成树协议 、 总结和答疑
- 小程序cms系统服务器选择,如何三分钟为小程序打造管理后台
- Hamcrest 精萃
- 计算机组装所需要的主要配件有哪些,组装电脑需要哪些零件_组装电脑需要哪些配件...
- 轻松解决Tomcat启动慢的问题,只需一行代码
- PISCES: A Programmable, Protocol-Independent Software Switch(总结)
- 最新版Shiro-SpringBoot项目实战笔记
热门文章
- Linux shell命令最常用的快捷键
- 前端实现搜索记录功能
- 【JOURNAL】集花酒联
- 如何在vue-router的beforeEach钩子里做页面访问权限验证
- Activiti 中的 命令模式与责任链模式
- 理正地基基础计算机辅助设计的英文缩写,理正基础CAD软件介绍理正基础CAD软件介绍.pdf...
- python linux 时间格式化,Python3 格式化日期
- java不等于正整数怎么输入_关于java:测试输入是否为正整数
- python列表写入csv文件_将多个列表写入csv。Python中的文件
- c语言进程间通信架构,构建微服务之:微服务架构中的进程间通信