Google C++单元测试框架】的更多相关文章

之前一个月都在学习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 { ..…
因为AdvancedGuide文档太长,分上下两部分,本文档接googletest--AdvancedGuide(译文)上:Google C++单元测试框架GoogleTest---AdvancedGuide(译文)上. 一.在子程序中使用断言(Using Assertions in Sub-routines) 1.1 将跟踪添加到断言 如果从几个地方调用测试子程序,当其中的断言失败时,可能很难判断失败来自哪个子程序的调用. 您可以使用额外的日志或自定义失败消息缓解这个问题,但通常会堵塞您的测试…
如果你还没有搭建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…
一.概述 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对象实现与一个真实对象相同的接口,但让你在运行时指定它时,如何使用?它应该做什么?(哪些方法将被称为?什么顺序?多少次?有什么参数?他们会返回什么?等) 注意:很容易混…
一.设置一个新的测试项目 在用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…
一.测试夹具(Test Fixtures):对多个测试使用相同的数据配置 如果你发现自己写了两个或更多的测试来操作类似的数据,你可以使用测试夹具.它允许您为几个不同的测试重复使用相同的对象配置. 要创建夹具,只需: 1.从:: testing :: Test派生一个类. 使用protected:或public:开始它的主体,因为我们想从子类     访问fixture成员.  2.在类中,声明你打算使用的任何对象.  3.如果需要,可以编写默认构造函数或SetUp()函数来为每个测试准备对象.…
本文是gtest高级测试指南的译文,由于文章太长,分上下两部分. 一.简介 本文档将向您展示更多的断言,以及如何构造复杂的失败消息,传播致命的故障,重用和加速您的测试夹具,并在您的测试使用各种标志. 二.更多断言 本节包括一些不太常用,但仍然重要的断言. 2.1 显式成功和失败 这三个断言实际上不测试值或表达式. 相反,它们直接产生成功或失败. 与实际执行测试的宏类似,您可以将自定义失败消息流入它们. SUCCEED(); 生成成功. 这不会使整体测试成功. 只有当测试在其执行期间没有任何断言失…