Доступ к закрытым членам с помощью GoogleTest


У меня возникли проблемы с доступом к закрытым членам. Вот мой код.

#pragma once
#ifndef TEST_FRIENDS
#define TEST_FRIENDS
#endif

namespace LibToTestNamespace
{
    class LibToTest
    {
    public:
        double Add(double, double);

    private:
        TEST_FRIENDS;
        int GetMyInt();
        int mInt;
    };
}

И

#include "UnitTests.h"
#define TEST_FRIENDS 
    friend class TestCustomUnitTest_hello_Test;
#include "LibToTest.h"

TEST(TestCustomUnitTest, hello)
{
    LibToTestNamespace::LibToTest ltt;
    ltt.mInt = 5;
    ltt.GetMyInt();
}

Я получаю ошибки "не могу получить доступ к закрытому члену, объявленному в классе". Я думаю, что lib будет построен первым, так что TEST_FRIENDS не будет заменен правильно? Но если модульный тест зависит от библиотеки, он всегда будет построен первым, верно?

1 2

1 ответ:

Я добился этого, обернув свой модульный тестовый класс В то же пространство имен, в котором существовал мой производственный класс.

namespace LibToTestNamespace
{
    TEST(TestCustomUnitTest, hello)
    {
        LibToTest ltt;
        ltt.mInt = 5;
        ltt.GetMyInt();
    }
}