sample 10 使用event listener监控Water类的创建和销毁.在Water类中,有一个静态变量allocated,创建一次值加一,销毁一次值减一.为了实现这个功能,重载了new和delete关键字,然后在new和delete函数中,做allocated的增减和记录allocated变量的值. class Water { public: // Normal Water declarations go here. ​ // operator new and operator de…
gtest 提供了类型参数化测试方案,可以测试不同类型的数据接口,比如模板测试.可以定义参数类型列表,按照列表定义的类型,每个测试case都执行一遍. 本例中,定义了2种计算素数的类,一个是实时计算,一个是提前计算好存放到一个大数组了.既空间和时间实现方式的对比.两种实现类都继承于抽象类PrimeTable. // The prime table interface. class PrimeTable { public: virtual ~PrimeTable() {} ​ // Returns…
1.7 sample7--接口测试 值参数不限定类型,也可以是类的引用,这就可以实现对类接口的测试,一个基类可以有多个继承类,那么可以测试不同的子类功能,但是只需要写一个测试用例,然后使用参数列表实现对每个子类的测试. 使用值参数测试法去测试多个实现了相同接口(类)的共同属性(又叫做接口测试) using ::testing::TestWithParam; using ::testing::Values; ​ typedef PrimeTable* CreatePrimeTableFunc();…
1.0 通用部分 和常见的测试工具一样,gtest提供了单体测试常见的工具和组件.比如判断各种类型的值相等,大于,小于等,管理多个测试的测试组如testsuit下辖testcase,为了方便处理初始化数据减少重复代码,提供了setup和teardown函数. 官方文档称:TEST has two parameters: the test case name and the test name. 第一个是case名称,第二个是test名称,这是google的名次称呼方法,其实就是一般意义上的tes…
测试一个方法,需要较多个参数进行测试,比如最大值.最小值.异常值和正常值.这中间会有较多重复代码工作,而值参数测试就是避免这种重复性工作,并且不会损失测试的便利性和准确性. 如果测试一个函数,需要些各种参数进行边界测试,比如测试是否为素数,需要测试各种参数. 方法1: class Prime { public: bool IsPrime(int n) { if (n <= 1) return false; ​ for (int i = 2; i * i <= n; i++) { // n is…
作用 作为代码编码人员,写完代码,不仅要保证编译通过和运行,还要保证逻辑尽量正确.单元测试是对软件可测试最小单元的检查和校验.单元测试与其他测试不同,单元测试可看作是编码工作的一部分,应该由程序员完成,也就是说,经过了单元测试的代码才是已完成的代码,提交产品代码时也要同时提交测试代码.测试部门可以作一定程度的审核.(来自百度百科) 其作用可以归为四种: 验证:验证程序逻辑的正确性,即使后期升级,通过跑单元测试,也可以看到升级后是否会对旧逻辑有影响 设计:促使程序员写出可单独测试的代码,从而更容易…
简介     gtest是google开源的一个单元测试框架,以其简单易学的特点被广泛使用.该框架以第三方库的方式插入被测代码中.同其他单元测试框架相似,gtest也通过制作测试样例来进行代码测试.同时,gtest还支持通过事件机制为这些测试样例添加不同级别的挂钩函数. gtest安装     在ubuntu中安装gtest的指令如下,该指令包含了下载源码.编译和安装的过程: sudo apt-get install libgtest-dev cd /usr/src/gtest sudo cma…
简介     事件机制用于在案例运行前后添加一些操作(相当于挂钩函数).目前,gtest提供了三种等级的事件,分别: 全局级,所有案例执行的前后 TestSuite级,某一个案例集的前后 TestCase级,每一个案例的前后     不同等级的事件在影响不同的范围. 示例-全局级     全局级事件在所有案例执行的前后运行,制作该事件需要继承testing::Environment类,实现里面的SetUp和TearDown方法.为了模拟实际应用中的情况,下面的测试代码分为了三个文件,分别代表:全…
一.设置一个新的测试项目 在用google test写测试项目之前,需要先编译gtest到library库并将测试与其链接.我们为一些流行的构建系统提供了构建文件: msvc/ for Visual Studio, xcode/ for Mac Xcode, make/ for GNU make, codegear/ for Borland C++ Builder. 如果你的构建系统不在这个名单上,在googletest根目录有autotools的脚本(不推荐使用)和CMakeLists.txt…
前置知识:awk 参考学习博客:https://www.cnblogs.com/bugingcode/p/8287914.html awk 'BEGIN{ commands } pattern{ commands } END{ commands }' 第一步:运行BEGIN{ commands }语句块中的语句. 第二步:从文件或标准输入(stdin)读取一行.然后运行pattern{ commands }语句块,它逐行扫描文件,从第一行到最后一行反复这个过程.直到文件所有被读取完成. 第三步:…
如果你还没有搭建gtest框架,可以参考我之前的博客:http://www.cnblogs.com/jycboy/p/6001153.html.. 1.The first sample: sample1 你把github上的项目导来之后,github地址:https://github.com/google/googletest,在目录:..(你的目录)\googletest-master\googletest\samples是你的samples文件夹. 在VS中创建项目:GtestSamples…
之前一个月都在学习googletest框架,对googletest的文档都翻译了一遍,也都发在了之前的博客里,另外其实还有一部分的文档我没有发,就是GMock的CookBook部分:https://github.com/google/googletest/blob/master/googlemock/docs/CookBook.md.这部分我也翻译了,也写了很多代码,但是这部分文档太长了,很难看完,除非是真用到里边的内容才会去里面找,所以就不在这浪费笔墨,如果有想要的可以在下边评论.截了个图:…
本文将介绍如何使用gtest进行单元测试. gtest是google单元测试框架.使用非常方便. 首先,下载gtest (有些google项目包含gtest,如 protobuf),复制目录即可使用. http://code.google.com/p/googletest/ 如果被墙,就百度搜下,很多. 解压 gtest.zip, 得到gtest.1.x.x目录. export GTEST_HOME=该目录 编译: cd $GTEST_HOME/makemake 运行示例程序, 熟悉 gtest…
单元测试:单元测试,是指对软件中的最小可测试单元进行检查和验证,对于单元测试中单元的含义,一般来说,要根据实际情况去判定其具体含义如:c语言中单元指一个函数,java里单元指一个类,图形化的软件中可以指一个窗口或者一个菜单等等,总的来说,单元就是人为规定的最小的被测功能模块 单元测试框架:在单元测试框架出现之前,开发人员在创建可执行测试时饱受折磨,最初的做法是在应用程序中创建一个窗口,配有“测试控制工具”他只是一个窗口,每个测试对应一个按钮,这些测试的结果要么是一个消息框,要么是直接在窗口本身给…
unittest官方文档摘录 翻译 reffer to: https://docs.python.org/3/library/unittest.html#unittest.TextTestRunner 第一部分-使用 1.基本概念 1.1)unittest单元测试框架最初的灵感来自于JUnit,其特点有 支持测试自动化 为测试共享setup和shutdown代码 可以把单个测试集合成测试用例集 将测试报告框架和测试用例独立开来 1.2)unittest支持的面向对象的重要理念 test fixt…
前面文章已经简单介绍了一些关于自动化测试框架的介绍,知道了什么是自动化测试框架,主要有哪些特点,基本组成部分等.在继续介绍框架设计之前,我们先来学习一个工具,叫unittest.       unittest是一个单元测试框架,是Python编程的单元测试框架.有时候,也做叫做“PyUnit”,是Junit的Python语言版本.这里了解下,Junit是Java语言的单元测试框架,Java还有一个很好用的单元测试框架叫TestNG,本系列只学习Python,所以只需要unittest是Pytho…
unittest是一个单元测试框架,是Python编程的单元测试框架.有时候,也做叫做“PyUnit”,是Junit的Python语言版本.这里了解下,Junit是Java语言的单元测试框架,Java还有一个很好用的单元测试框架叫TestNG,本系列只学习Python,所以只需要unittest是Python里的一个单元测试框架就可以了.       unittest支持测试自动化,共享测试用例中的初始化和关闭退出代码,在unittest中最小单元是test,也就是一个测试用例.要了解unitt…
一.unittest单元测试框架 1.认识单元测试 1.断言方法 #计算器类 #coding:utf-8 #计算器类 class Count: def __init__(self,a,b): self.a=a self.b=b #计算加法 def sum(self): return self.a+self.b 创建一个Count类用于两个整数计算,通过__init__()方法对两个数进行初始化,接着创建sum()方法返回两个数相加的结果 #test.py #coding:utf-8 from D…
请点赞关注,你的支持对我意义重大. Hi,我是小彭.本文已收录到 GitHub · AndroidFamily 中.这里有 Android 进阶成长知识体系,有志同道合的朋友,关注公众号 [彭旭锐] 带你建立核心竞争力. 前言 LeakCanary 是我们非常熟悉内存泄漏检测工具,它能够帮助开发者非常高效便捷地检测 Android 中常见的内存泄漏.在各大厂自研的内存泄漏检测框架(如腾讯 Matrix 和快手 Koom)的帮助文档中,也会引述 LeakCanary 原理分析. 不吹不黑,Leak…
转自:http://www.cnblogs.com/coderzh/archive/2009/04/06/1426755.html 前段时间学习和了解了下Google的开源C++单元测试框架Google Test,简称gtest,非常的不错. 我们原来使用的是自己实现的一套单元测试框架,在使用过程中,发现越来越多使用不便之处,而这样不便之处,gtest恰恰很好的解决了. 其实gtest本身的实现并不复杂,我们完全可以模仿gtest,不断的完善我们的测试框架, 但最后我们还是决定使用gtest取代…
原文地址:http://www.cnblogs.com/coderzh/archive/2009/04/06/1426755.html 前段时间学习和了解了下Google的开源C++单元测试框架Google Test,简称gtest,非常的不错. 我们原来使用的是自己实现的一套单元测试框架,在使用过程中,发现越来越多使用不便之处,而这样不便之处,gtest恰恰很好的解决了. 其实gtest本身的实现并不复杂,我们完全可以模仿gtest,不断的完善我们的测试框架, 但最后我们还是决定使用gtest…
文章转载自CoderZh的技术博客 地址:https://www.cnblogs.com/coderzh/archive/2009/04/06/1426755.html 前段时间学习和了解了下Google的开源C++单元测试框架Google Test,简称gtest,非常的不错. 我们原来使用的是自己实现的一套单元测试框架,在使用过程中,发现越来越多使用不便之处,而这样不便之处,gtest恰恰很好的解决了. 其实gtest本身的实现并不复杂,我们完全可以模仿gtest,不断的完善我们的测试框架,…
原文来自:http://www.cnblogs.com/coderzh/archive/2009/04/06/1426755.html 虽然有点晚了,还是一口气读完了全部文章.作者言简意赅和明快的风格确实值得我们学习. 下面是该系列的目录: 1.玩转Google开源C++单元测试框架Google Test系列(gtest)之一 - 初识gtest 2.玩转Google开源C++单元测试框架Google Test系列(gtest)之二 - 断言 3.玩转Google开源C++单元测试框架Googl…
转载来源:https://www.cnblogs.com/coderzh/archive/2009/04/12/1434155.html 一.前言 上一篇我们分析了gtest的一些内部实现,总的来说整体的流程并不复杂.本篇我们就尝试编写一个精简版本的C++单元测试框架:nancytest ,通过编写这个简单的测试框架,将有助于我们理解gtest. 二.整体设计 使用最精简的设计,我们就用两个类,够简单吧: 1. TestCase类包含单个测试案例的信息. 2. UnitTest类 负责所有测试案…
玩转Google开源C++单元测试框架Google Test系列(gtest)(总) 前段时间学习和了解了下Google的开源C++单元测试框架Google Test,简称gtest,非常的不错. 我们原来使用的是自己实现的一套单元测试框架,在使用过程中,发现越来越多使用不便之处,而这样不便之处,gtest恰恰很好的解决了. 其实gtest本身的实现并不复杂,我们完全可以模仿gtest,不断的完善我们的测试框架, 但最后我们还是决定使用gtest取代掉原来的自己的测试框架,原因是: 1.不断完善…
转自http://www.cnblogs.com/coderzh/archive/2009/04/06/1426755.html 前段时间学习和了解了下Google的开源C++单元测试框架Google Test,简称gtest,非常的不错. 我们原来使用的是自己实现的一套单元测试框架,在使用过程中,发现越来越多使用不便之处,而这样不便之处,gtest恰恰很好的解决了. 其实gtest本身的实现并不复杂,我们完全可以模仿gtest,不断的完善我们的测试框架, 但最后我们还是决定使用gtest取代掉…
越来越多公司采用敏捷开发,单元和回归测试越来越重要,GTest作为最佳C++单元测试工具越来越多的被使用.转自 http://www.cnblogs.com/coderzh/archive/2009/04/06/1426755.html 前段时间学习和了解了下Google的开源C++单元测试框架Google Test,简称gtest,非常的不错. 我们原来使用的是自己实现的一套单元测试框架,在使用过程中,发现越来越多使用不便之处,而这样不便之处,gtest恰恰很好的解决了. 其实gtest本身的…
gtest的官方网站是: http://code.google.com/p/googletest/ 从官方的使用文档里,你几乎可以获得你想要的所有东西 http://code.google.com/p/googletest/wiki/GoogleTestPrimer http://code.google.com/p/googletest/wiki/GoogleTestAdvancedGuide 下面是该系列的目录: 1.玩转Google开源C++单元测试框架Google Test系列(gtest…
CheatSheet文档中包含了GMock所有常用的东西,看了这个基本上就可以用它了,本文接上篇博文:Google C++单元测试框架GoogleTest---Google Mock简介--概念及基础语法 ,建议先看上一篇,再看本篇内容. 本文翻译自:https://github.com/google/googletest/blob/master/googlemock/docs/CheatSheet.md 一.定义一个模拟类 1. 模拟一个正常的类,就是接口类 给: class Foo { ..…
就在昨天终于做了gtest的分享,我的预研工作终于结束了,感觉离我辞职的日子不远了,毕竟是专注java二百年啊,要告别实习啦.. 这篇是GoogleMock的简介文档,会在后边附带一个自己的例子. 一.什么是Google C ++ Mocking Framework? 当你写一个原型或测试,往往不能完全的依赖真实对象.一个mock对象实现与一个真实对象相同的接口,但让你在运行时指定它时,如何使用?它应该做什么?(哪些方法将被称为?什么顺序?多少次?有什么参数?他们会返回什么?等) 注意:很容易混…