在googletest中访问受保护的变量

时间:2014-10-10 20:12:40

标签: c++ googletest protected

我有这个类testC,用于谷歌测试

class testC : public A { };

然后是同一个文件中的一堆TEST。

TEST(test_case_name, test_name) {
 ... test body ...
}

A的结构如下

class A{

protected:
   B b;
public:
   //constructors
   //destructor
   //member functions

问:如何通过b访问所有TEST(){}个功能中的testC

我试图在testC

中做一个getter
public:
  testC getTest(){
      testC test;
      return test;
  }

我也尝试过返回参考,但没有运气......

1 个答案:

答案 0 :(得分:1)

我认为您可以使用googletest提供的FRIEND_TEST宏。请查看Private class members下的高级指南。基本上,您必须将测试声明为受测试代码的朋友。如果我没弄错的话,你必须为所有想要访问受保护成员的测试声明友谊。

更新:感谢您改进了链接; - )

这种方法令我很恼火的是,您必须在测试代码中添加 FRIEND_TEST 声明。但是,如果您想针对受保护/私人成员进行测试,那么这就是您需要支付的价格。