naruto 我也没有说googletest能让我们访问私有成员啊... 2333 首先, 我说的是按照googletest的建议, 要测试私有函数的话, 你可以将你的testing fixture
声明为待测试类的一个友元, 这样就可以访问私有成员了, 这样会多少代码, 每个类就一行吧... 让代码变得不优雅? 也没有? 反而让代码变得更加清晰了我觉得, 显式说明这个类有单元测试. 其次#define private public
这种东西就不具有通用性, 测试完了我还得删掉这样的语句, 当然你也可以用条件编译, 没人拦着你, 编译过程就复杂了...
所以, 总结一下我的观点 : C++
本身就提供了这样的机制让类外作用域访问私有函数, 如果你都有现成的源代码了, 就不需要你做什么不通用的"骚操作", Bjarne Stroustrup都帮你想好了.