gpt4 book ai didi

c++ - boost 单元测试夹具继承测试类,可以访问 protected 方法?

转载 作者:行者123 更新时间:2023-11-30 04:52:46 25 4
gpt4 key购买 nike

我以前使用过 Google Test/GTest,我确信它允许你的文本夹具类继承你正在测试的类,所以它可以访问被测试类的 protected 方法(不需要它们暴露为公开)。

我试图通过 Boost 单元测试实现相同的目的,但它不允许我访问 protected 方法(即使我的测试夹具类继承自被测试的类)。

有没有办法让测试夹具类访问在 Boost 测试中被测试的类的 protected 方法?如果不是,公开单元测试的私有(private)/ protected 方法的最佳方法是什么?

最佳答案

来自 BOOST_FIXTURE_TEST_CASE 的测试函数是从夹具继承的结构的一部分。它的公共(public)和 protected 成员可以像局部变量一样对待。放入一个继承自您要测试的类的夹具,然后您就可以开始比赛了:

class TestClass {
public:
TestClass() {}
protected:
bool Foo() { return true; }
};

class MyFixture : public TestClass {
public:
MyFixture() { bar = 1; }
protected:
int bar;
};

BOOST_FIXTURE_TEST_CASE(MyTest, MyFixture) {
BOOST_TEST(bar == 1);
BOOST_TEST(Foo());
}

关于c++ - boost 单元测试夹具继承测试类,可以访问 protected 方法?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54134664/

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