简介     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方法.为了模拟实际应用中的情况,下面的测试代码分为了三个文件,分别代表:全…
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();…
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…
作用 作为代码编码人员,写完代码,不仅要保证编译通过和运行,还要保证逻辑尽量正确.单元测试是对软件可测试最小单元的检查和校验.单元测试与其他测试不同,单元测试可看作是编码工作的一部分,应该由程序员完成,也就是说,经过了单元测试的代码才是已完成的代码,提交产品代码时也要同时提交测试代码.测试部门可以作一定程度的审核.(来自百度百科) 其作用可以归为四种: 验证:验证程序逻辑的正确性,即使后期升级,通过跑单元测试,也可以看到升级后是否会对旧逻辑有影响 设计:促使程序员写出可单独测试的代码,从而更容易…
一.设置一个新的测试项目 在用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…
1.0 通用部分 和常见的测试工具一样,gtest提供了单体测试常见的工具和组件.比如判断各种类型的值相等,大于,小于等,管理多个测试的测试组如testsuit下辖testcase,为了方便处理初始化数据减少重复代码,提供了setup和teardown函数. 官方文档称:TEST has two parameters: the test case name and the test name. 第一个是case名称,第二个是test名称,这是google的名次称呼方法,其实就是一般意义上的tes…
之前一个月都在学习googletest框架,对googletest的文档都翻译了一遍,也都发在了之前的博客里,另外其实还有一部分的文档我没有发,就是GMock的CookBook部分:https://github.com/google/googletest/blob/master/googlemock/docs/CookBook.md.这部分我也翻译了,也写了很多代码,但是这部分文档太长了,很难看完,除非是真用到里边的内容才会去里面找,所以就不在这浪费笔墨,如果有想要的可以在下边评论.截了个图:…
如果你还没有搭建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…