我有这个类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
public:
testC getTest(){
testC test;
return test;
}
我也尝试过返回参考,但没有运气......
答案 0 :(得分:1)
我认为您可以使用googletest提供的FRIEND_TEST宏。请查看Private class members下的高级指南。基本上,您必须将测试声明为受测试代码的朋友。如果我没弄错的话,你必须为所有想要访问受保护成员的测试声明友谊。
更新:感谢您改进了链接; - )
这种方法令我很恼火的是,您必须在测试代码中添加 FRIEND_TEST 声明。但是,如果您想针对受保护/私人成员进行测试,那么这就是您需要支付的价格。