Boost单元测试夹具继承测试类,是否可以访问受保护的方法
Boost unit test fixture inheriting test class, to have access to protected methods?
我以前使用过Google Test/GTest,我确信它允许您的文本fixture类继承您正在测试的类,这样它就可以访问被测试类的受保护方法(而不需要将它们公开为公共方法)。
我正试图用Boost单元测试实现同样的事情,但它不允许我访问受保护的方法(即使我的测试fixture类继承自被测试的类)。
有没有一种方法可以让测试夹具类访问Boost测试中测试的类的受保护方法?如果没有,那么为单元测试公开私有/受保护方法的最佳方式是什么?
BOOST_FIXTURE_test_CASE中的测试函数是从FIXTURE继承的结构的一部分。它是公共的,受保护的成员可以像局部变量一样对待。加入一个从你想要测试的类继承的fixture,你就可以开始比赛了:
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++:为什么无法在派生类中访问受保护的构造函数?
- 如何从其他结构访问受保护的结构变量
- 从模板化父类中的派生内部类访问受保护的成员变量
- 有没有办法通过 main 函数访问受保护的矢量大小而无需将其转换为公共?
- 在派生类的构造函数初始化中无法访问受保护的函数
- 无法通过指针或对象 c++ 访问受保护的成员
- C 继承访问受保护的数据成员
- 访问受保护的成员
- 尝试从基类访问受保护的构造函数时出现错误 C2248
- 如何通过运算符<<的重载访问受保护的功能?C++
- 从公共派生类访问受保护的成员
- Boost单元测试夹具继承测试类,是否可以访问受保护的方法
- 如果我使用强制转换访问受保护的成员,可能会出现什么问题?
- 通过继承访问受保护的成员
- 访问受保护的变量 - 继承和子类的复杂情况
- 为什么我无法从基类的实例访问受保护的成员?
- 访问受保护成员的公共方法
- 通过好友访问受保护的成员
- 从另一个类 C++ 访问受保护的函数