Я увидел, что
этот вопрос очень похож на мой вопрос, но с одним отличием. Я пытаюсь получить доступ к защищенным членам не класса ToBeTested, а класса, производного от него. Я обновил решение, упомянутое в этом сообщении, в соответствии с моим вопросом. (Я использую онлайн-компилятор, поэтому не смог его скомпилировать из-за отсутствия файлов gtest)
Код: Выделить всё
class Base
{
public:
Base(const int &config);
Base() = delete;
virtual ~Base();
protected:
virtual int pureVirtualFoo() = 0;
void fooToAccess();
int parameterToAccess;
};
class Child: public Base
{
public:
Child(const int &config);
Child() = delete;
virtual ~Child();
protected:
int pureVirtualFoo() { return 0; };
};
class ChildStub : public Child
{
public:
ChildStub(int config): Child(config){};
FRIEND_TEST(ChildTestFixture, test1);
};
class ChildTestFixture //: public ::testing::Test
{
protected:
std::unique_ptr stub;
int config = 0;
virtual void SetUp()
{
stub = std::unique_ptr( new ChildStub(config));
}
virtual void TearDown()
{
}
};
TEST_F(ChildTestFixture, test1)
{
stub->fooToAccess();
stub->parameterToAccess;
}
Источник: https://stackoverflow.com/questions/781 ... child-clas