gtest: сделать базовый тестовый класс другом тестового класса - PullRequest
0 голосов
/ 05 августа 2020

У меня в тесте есть следующие конструкции:

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. Что еще мне нужно сделать?

1 Ответ

0 голосов
/ 08 августа 2020

Я понял, что делаю не так. Сделав FooTest дружественным классом, можно получить доступ к закрытым полям из методов внутри FooTest, но не из отдельных тестовых примеров. Мне пришлось добавить в FooTest аксессоры, которые разрешили бы доступ к Foo.

...