gmock】的更多相关文章

一.gmock是什么 gmock是google公司推出的一款开源的白盒测试工具.gmock是个很强大的东西,测试一个模块的时候,可能涉及到和其他模块交互,可以将模块之间的接口mock起来,模拟交互过程.其作用就类似白盒测试中的打桩的概念. 下面简单的说说打桩在白盒测试中的重要性: 1.比如银行业务,需要测试业务模块.此时,不可能去操作真实的数据库,并且搭建新的数据库可能比较复杂或者耗时.那么就可以用gmock将数据库接口地方打桩,来模拟数据库操作. 2.比如要测试A模块,必过A模块需要调用B模块…
c++ 单元测试框架 gmock 深度剖析 随着微服务和CI的流行,在目前的软件工程领域中单元测试可以说是必不可少的一个环节,在TDD中,单元测试更是被提高到了一个新的高度.但是很多公司由于很多不同的原因,没有能持续维护,或者干脆就从来没有写过单元测试,确实,单元测试在初期和代码维护期会需要花一些投入,但是,如果一个项目是需要长期维护和更新的,那么单元测试的作用,相对于投入来说就根本不算什么.见过很多人写的单元测试,虽然也可以运行,也有覆盖率,但是稍微分析一下就会看出来,那根本就不是单元测试,而…
正式工作之后,公司对于单元测试要求比较严格.(笔者之前比较懒,一般很少写完整的单测~~).作为一个合格的开发工程师,需要为所编写代码编写适量的单元测试是十分必要的,在实际进行的开发工作之中,TDD(Test drivern development) 是一种经过实践可行的开发方式.编写单元测试可以帮助我们在开发阶段就发现错误,并且保证新的修改没有破坏已有的程序逻辑. 在 C++之中,常用的测试框架有 Gtest,Boost test,CPPUint 等.正是由于 Gmock 的加持,让 Gtest…
在C++中,编写服务后的一种测试方式是使用google的gTest和gMock结合 之前写py,测试方式是将服务挂起,使用工具模拟请求发包,check resp,这样的缺点在于不方便,即使存下了所有的模拟请求,回头还是要按一遍,并且所做的测试并不能算作单元测试,而是集成 而使用test&mock的方式可以做到固定的单元测试 gTest:编写固定的单元测试代码,对每个c++的服务类进行测试 gMock:所测试的单元可能会有依赖的部分,我们当然是确保这些依赖项完全正确,那么就会面临一个局面:1 我们…
提起白盒测试,很多程序员可能觉得就是个书上的概念,很多人写完代码根本没有具体的测试方案,自己觉得可行就提交了,其实这是个很危险的事情,毕竟出了bug,最后要加班的人还是你 ,因此做好白盒测试,100%的覆盖是很重要的. 事实上,VS中已经集成了单元测试框架.可是,要达到更广泛的测试目的,需要借助下外援了. 本文希望通过介绍由Google出品的Gmock和Gtest框架,帮助程序员完成单元测试.也是自己的学习记录 网上给的地址都在墙外,这里给个可以用的下载地址,1.7.0点这里 另外 附上1.8.…
1      初识gmock 1.1      什么是Mock 便捷的模拟对象的方法. 1.2      Google Mock概述 google mock是用来配合google test对C++项目做单元测试的.它依赖于googletest Google Mock(简称gmock)是Google在2008年推出的一套针对C++的Mock框架,它灵感取自于jMock.EasyMock.harcreat.它提供了以下这些特性: 轻松地创建mock类 支持丰富的匹配器(Matcher)和行为(Act…
本文目的 本文主要介绍gmock 1.6.0版本在Linux上如何部署和使用. gmock是做什么的? 使用C++手动编写mock对象将会是一件十分耗时,易于出错,枯燥乏味的事情.gmock提供一整套mock 框架,帮助你完成这些脏活累活. 编译gmock 1 下载:gmock官方下载 2 上传:使用WinScp或其他工具将gmock_1.x.x.zip上传到linux机器,该linux上的gcc版本最好在4.0以上. 3 解压:使用命令“unzip gmock_1.x.x.zip”,解压后会在…
所谓测试驱动开发,英文全称Test-Driven Development,简称TDD,是一种不同于传统软件开发流程的新型的开发方法.就是在明确要开发某个功能后,首先思考如何对这个功能进行测试,并完成测试代码的编写,然后编写相关的代码满足这些测试用例.然后循环进行添加其他功能,直到完成全部功能的开发. Google Mock的设计灵感来源于jMock和EasyMock,它的作用是帮你快速地做出一个接口的仿制品.如果你的设计依赖其它的类,而这些类还没有完成或非常昂贵(如数据库):如果你要测试你的模块…
gMock是什么 当我们去写测试时,有些测试对象很单纯简单,例如一个函数完全不依赖于其他的对象,那么就只需要验证其输入输出是否符合预期即可. 但是如果测试对象很复杂或者依赖于其他的对象呢?例如一个函数中需要访问数据库或者消息队列,那么要想按照之前的思路去测试就必须创建好数据库和消息队列的客户端实例,然后放在该函数内使用.很多时候这种操作是很麻烦的,此时Mock Object就能帮助我们解决这个问题.一个Mock Object实现与真实对象相同的接口,它可以替代真实对象去使用,而我们要做的就是制定…
https://www.cnblogs.com/welkinwalker/archive/2011/11/29/2267225.html http://www.cnblogs.com/jycboy/p/gmock_summary.html…
std::shared_ptr<MockThreadRCInvester> spMockaAcc; HelperThreadRCInvester helperAcc; // spMockAcc 对象的monitorAccount() 函数被调用时,使用其它的方式来处理 // testing::_ 是一个占位符,它表示monitorAccount() 函数的参数个性,每一个代表一个参数. EXPECT_CALL(*spMockAcc, monitorAccount(testing::_, tes…
之前一个月都在学习googletest框架,对googletest的文档都翻译了一遍,也都发在了之前的博客里,另外其实还有一部分的文档我没有发,就是GMock的CookBook部分:https://github.com/google/googletest/blob/master/googlemock/docs/CookBook.md.这部分我也翻译了,也写了很多代码,但是这部分文档太长了,很难看完,除非是真用到里边的内容才会去里面找,所以就不在这浪费笔墨,如果有想要的可以在下边评论.截了个图:…
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对象实现与一个真实对象相同的接口,但让你在运行时指定它时,如何使用?它应该做什么?(哪些方法将被称为?什么顺序?多少次?有什么参数?他们会返回什么?等) 注意:很容易混…
github地址:https://github.com/google/protobuf支持多种语言,有多个语言的版本,本文采用的是在centos7下编译源码进行安装. github上有详细的安装说明:https://github.com/google/protobuf/blob/master/src/README.md 1.确定centos7上已经安装了下面的软件,或者直接用yum进行更新 autoconf automake libtool curl (used to download gmoc…
Tensorflow serving提供了部署tensorflow生成的模型给线上服务的方法,包括模型的export,load等等. 安装参考这个 https://github.com/tensorflow/serving/blob/master/tensorflow_serving/g3doc/setup.md 但是由于被qiang的问题 (googlesource无法访问) https://github.com/tensorflow/serving/issues/6 需要修改一下 WORKS…
如果你还没有搭建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…
官方教程:http://caffe.berkeleyvision.org/install_apt.html 主要参考教程: https://github.com/BVLC/caffe/wiki/Ubuntu-16.04-or-15.10-Installation-Guide 其他参考:http://blog.csdn.net/hjimce/article/details/51999566 http://www.52nlp.cn/%E6%B7%B1%E5%BA%A6%E5%AD%A6%E4%B9%…
1.cmake软件的安装wget https://cmake.org/files/v3.5/cmake-3.5.0-rc3.tar.gztar xf cmake-3.5.0.tar.gzcd cmake-3.5.0./configuregmakegmake install 2.依赖包 ncurses-devel,boost,bison yum -y install gcc gcc-c++ ncurses ncurses-devel cmake bison bison-devel autoconf…
/** boost 多索引容器的一般使用 这里使用google 的gmock 库来验证对boost 多索引模板的使用,并验证. 这里是手敲的,可能会有一些字符敲错的情况,编译错误的放,修改一下,同时链接gmock库就可以正常运行了. 当然还需要链接boost 的相关库 **/ #include <stdint.h> #include <gtest/gtest.h> #include <gmock/gmock.h> #include <boost/multi_ind…
修改~/.vim/bundle/YouCompleteMe/third_party/ycmd/cpp/ycm/.ycm_extra_conf.py的flags变量 未改前如下: flags = [  '-Wall', '-Wextra', '-Werror', '-Wc++98-compat', '-Wno-long-long', '-Wno-variadic-macros', '-fexceptions', '-DNDEBUG', # You 100% do NOT need -DUSE_CL…
本文改写于:http://www.cnblogs.com/skyme/archive/2011/05/14/2046040.html 1.下载并安装git: 在git-scm.com上下载并安装git,安装后它会自动加载在windows右键菜单中. 2.生成下载命令列表: git下载的格式形如: git clone https://android.googlesource.com/name 把name换成具体的目录即可,android源码的目录极多,手动手写太过繁杂,改写文章提供了一个java程…
这几天终于把tensorflow安装上了,中间遇到过不少的问题,这里记录下来.供大家想源码安装的参考. 安装环境:POWER8处理器,Docker容器Ubuntu14.04镜像. Build Protobuf<v3.0.0-alpha-3> for IBM POWER8 CPU from Source Code My computer's os is ubuntu 14.04 , and I want to install protobuf v3.0.0-alpha-3, but there…
单元测试概述 测试并不只是测试工程师的责任,对于开发工程师,为了保证发布给测试环节的代码具有足够好的质量( Quality ),为所编写的功能代码编写适量的单元测试是十分必要的. 单元测试( Unit Test ,模块测试)是开发者编写的一小段代码,用于检验被测代码的一个很小的.很明确的功能是否正确,通过编写单元测试可以在编码阶段发现程序编码错误,甚至是程序设计错误. 单元测试不但可以增加开发者对于所完成代码的自信,同时,好的单元测试用例往往可以在回归测试的过程中,很好地保证之前所发生的修改没有…
背景 GMock 我们项目中现在的模块测试框架使用了CATCH+GMock的方式实现回归测试和打桩. GMock的介绍在官网上有,这里为了铺垫,大概地描述一下GMock能实现的效果.大约可以看成这样: void A() {     if(B()) {         //...     }     Else{         //...     } } A是被测函数,B是桩函数. 在测试的,使用GMock的话,我们可以这样写测试代码: TEST_CASE(Test As normal case)…
所需工具 : cmake  for  windows 和  git for windows 原理:protobuf 是google的一个开源项目,其源代码在github上可以下载到,并且源码都采用cmake来构建,所以我们可以把源码下载到本地,然后了利用cmake构建本地工程,然后编译. 步骤一:下载源码 复制以下代码,保存到 download_protobuf_source.bat 文件中,运行即可 ::参考文章 https://github.com/google/protobuf/blob/…
Protocol Buffers - Google's data interchange format 一.简介 名字已经很好的说明它是什么,这里还是要简单的介绍一下,protobuf是protocol buffer的缩写,它是Google开源的一个数据传输格式工具,也就是序列化和反序列化工具. 二.安装 直接从上面的github库下载源码安装,README文件已经简单介绍了安装方式: ./autogen.sh # 生成configure脚本 $ ./configure $ make $ mak…
原文: https://code.google.com/p/googlemock/wiki/CookBook Creating Mock Classes Mocking Private or Protected Methods Mocking Overloaded Methods Mocking Class Templates Mocking Nonvirtual Methods Mocking Free Functions The Nice, the Strict, and the Naggy…
原文: https://code.google.com/p/googlemock/wiki/CheatSheet Defining a Mock Class Mocking a Normal Class Mocking a Class Template Specifying Calling Conventions for Mock Functions Using Mocks in Tests Setting Default Actions Setting Expectations Matcher…
原文: https://code.google.com/p/googlemock/wiki/V1_7_ForDummies 地址被墙了, 看起来费劲, 转载一份 Google C++ Mocking Framework for Dummies Updated Nov 21, 2013 by zhanyong...@gmail.com What Is Google C++ Mocking Framework? Why Google Mock? Getting Started A Case for…