之前一个月都在学习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框架,可以参考我之前的博客: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…
因为AdvancedGuide文档太长,分上下两部分,本文档接googletest--AdvancedGuide(译文)上:Google C++单元测试框架GoogleTest---AdvancedGuide(译文)上. 一.在子程序中使用断言(Using Assertions in Sub-routines) 1.1 将跟踪添加到断言 如果从几个地方调用测试子程序,当其中的断言失败时,可能很难判断失败来自哪个子程序的调用. 您可以使用额外的日志或自定义失败消息缓解这个问题,但通常会堵塞您的测试…
一.概述 Google C++单元测试框架(简称Gtest),可在多个平台上使用(包括Linux, Mac OS X, Windows, Cygwin和Symbian),它提供了丰富的断言.致命和非致命失败判断,能进行值参数化测试.类型参数化测试.“死亡测试”.Gtest是一个开源的项目,其源码可以从这里下载,目前的代码发行版是1.6.0. 编译 源码包中的README文件说明了如何编译Gtest源码,目录msvc.xcode中分别包含了Windows.Mac OS X平台相关的项目文件,cma…
就在昨天终于做了gtest的分享,我的预研工作终于结束了,感觉离我辞职的日子不远了,毕竟是专注java二百年啊,要告别实习啦.. 这篇是GoogleMock的简介文档,会在后边附带一个自己的例子. 一.什么是Google C ++ Mocking Framework? 当你写一个原型或测试,往往不能完全的依赖真实对象.一个mock对象实现与一个真实对象相同的接口,但让你在运行时指定它时,如何使用?它应该做什么?(哪些方法将被称为?什么顺序?多少次?有什么参数?他们会返回什么?等) 注意:很容易混…
本文是gtest高级测试指南的译文,由于文章太长,分上下两部分. 一.简介 本文档将向您展示更多的断言,以及如何构造复杂的失败消息,传播致命的故障,重用和加速您的测试夹具,并在您的测试使用各种标志. 二.更多断言 本节包括一些不太常用,但仍然重要的断言. 2.1 显式成功和失败 这三个断言实际上不测试值或表达式. 相反,它们直接产生成功或失败. 与实际执行测试的宏类似,您可以将自定义失败消息流入它们. SUCCEED(); 生成成功. 这不会使整体测试成功. 只有当测试在其执行期间没有任何断言失…
Google TestExtending Google Test by Handling Test Events Google测试提供了一个事件侦听器API,让您接收有关测试程序进度和测试失败的通知. 可以监听的事件包括测试程序的开始和结束,测试用例或测试方法等. 您可以使用此API来扩充或替换标准控制台输出,替换XML输出,或提供完全不同的输出形式,例如GUI或数据库. 例如,您还可以使用测试事件作为检查点来实现资源泄漏检查器. 一.定义事件侦听器 要定义一个事件监听器,你需要继承testin…
一.设置一个新的测试项目 在用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…
值参数化测试允许您使用不同的参数测试代码,而无需编写同一测试的多个副本. 假设您为代码编写测试,然后意识到您的代码受到布尔参数的影响. TEST(MyCodeTest, TestFoo) { // A code to test foo(). } 通常人们在这种情况下将他们的测试代码考虑为具有布尔参数的函数. 该函数设置标志,然后执行测试代码: void TestFooHelper(bool flag_value) { flag = flag_value; // A code to test fo…