Chinaunix首页 | 论坛 | 博客
  • 博客访问: 5763751
  • 博文数量: 291
  • 博客积分: 0
  • 博客等级: 民兵
  • 技术积分: 7924
  • 用 户 组: 普通用户
  • 注册时间: 2016-07-06 14:28
个人简介

阿里巴巴是个快乐的青年

文章分类

全部博文(291)

文章存档

2018年(21)

2017年(4)

2016年(5)

2015年(17)

2014年(68)

2013年(174)

2012年(2)

分类: 信息化

2014-06-24 19:46:19

        用gtest测试类的时候不可避免的会遇到private方法的测试。
        比较流行的解决方案有如下两种:
1、将test class作为被测试class的友元(friend)
        这种方式的缺陷很明显,友元关系的加入破坏了被测试代码的完整性,所以此法不可取。
2、用编译宏的方式来将private在测试时替换成public
        这是一种比较优雅的解决方式,只需要如下两步即可:
        (1)在test class中加入如下代码:
        #ifdef GTEST
        #define private public
        #define protected public
        #endif
        (2)在test class的makefile中加入如下宏:
        CFLAGS = -DGTEST 
        这样在编译时,会自动将所有private和protected替换为public。
        其实,在测试中,会发现被测函数中常常会有一些可变属性需要跳过,也可以用编译宏来解决,比如:在PV日志中会有pvtime,而时间每次请求都会不同,这样就可以用编译宏来跳过pvtime或者替换pvtime。


阅读(8356) | 评论(1) | 转发(0) |
给主人留下些什么吧!~~

scq2099yt2014-06-24 19:46:47

文明上网,理性发言...