gpt4 book ai didi

c++ - 使用 GoogleTest 访问私有(private)成员

转载 作者:行者123 更新时间:2023-12-01 14:50:37 28 4
gpt4 key购买 nike

我在访问私有(private)成员时遇到了问题。这是我的代码。

#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();
}

我收到错误“无法访问类中声明的私有(private)成员”。我在想首先构建 lib,所以 TEST_FRIENDS 没有被正确替换?但是,如果单元测试依赖于库,它总是会先构建,对吗?

最佳答案

我通过将我的单元测试类包装在我的生产类所在的同一个命名空间中来实现它。

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

关于c++ - 使用 GoogleTest 访问私有(private)成员,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46107103/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com