首页 > 解决方案 > gtest:使基础测试类成为测试类的朋友

问题描述

我的测试中有以下构造:

class FooType {};
class OtherFooType {};

using FooTypes =
    ::testing::Types<FooType, OtherFooType>;

TYPED_TEST_CASE(FooTest, FooTypes);

template <typename FooClassType>
class FooTest : public testing::Test {

TYPED_TEST(FooTest, SimpleTest) {

我也有课:

class Foo {

class OtherFoo : public Foo {

Foo想交朋友FooTest

我试过了:

  template <typename FooTypes>
  friend class FooTest;

在 Foo 类声明中,但来自 Foo 的受保护字段在 FooTest 中仍然不可见。我还需要做什么?

标签: c++googletestfriend

解决方案


我弄清楚我做错了什么。使 FooTest 成为友元类允许从 FooTest 内部的方法访问私有字段,但不能从单个测试用例访问。我必须在 FooTest 中添加允许访问 Foo 的访问器。


推荐阅读