c++ - 如何让我的类(class)成为 google-test 类(class)的 friend

我听说有可能让 google-test TestCase 类 friend 加入我的类,从而使测试能够访问我的私有(private)/ protected 成员。

如何做到这一点?

最佳答案

试试这个(直接来自 Google 测试文档...):

FRIEND_TEST(TestCaseName, TestName);

例如:

// foo.h
#include <gtest/gtest_prod.h>

// Defines FRIEND_TEST.
class Foo {
  ...
 private:
  FRIEND_TEST(FooTest, BarReturnsZeroOnNull);
  int Bar(void* x);
};

// foo_test.cc
...
TEST(FooTest, BarReturnsZeroOnNull) {
  Foo foo;
  EXPECT_EQ(0, foo.Bar(NULL));
  // Uses Foo's private member Bar().
}

关于c++ - 如何让我的类(class)成为 google-test 类(class)的 friend ?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2396370/

相关文章:

c++ - 库已链接,但引用未定义

c++ - (为什么)移动构造函数或移动赋值运算符应该清除它的参数吗?

c++ - 如何设置 QMainWindow 标题

c++ - 从基类构造函数调用纯虚函数

c++ - GCC 4.x/C++11 中的 std::string 引用计数了吗?

c++ - 虚函数默认参数行为

c++ - 持有派生类引用的基类的 std::unique_ptr 在 gcc 编译器中不显示警告,

c++ - 动态和静态范围程序差异

c++ - 最快的素数测试算法

c++ - 什么是 C++ 内联类?