我希望为我的 Google 测试装置定义一个不可实例化的超类。超类将初始化成员并进行一些默认测试。子类将扩展超类,并具有特定的测试。
以下是基类:
class BaseTest : public ::testing::Test
{
protected:
BaseTest(...) {} // constructor with args to setup members
void SetUp() {} // sets up the internals
};
TEST_F(BaseTest, ACommonTest) {} // common test case
派生类:
class DerivedTest : public BaseTest
public:
DerivedTest() : BaseTest(...) {} // default no args constructor
void SetUp() { BaseTest::SetUp(); }
};
TEST_F(DerivedTest, ASpecificTest) {} // specific test case
我想要的是不实例化 BaseTest 的测试,而是实例化 DerivedTest 并调用 ACommonTest 和 ASpecificTest 这两个方法。
它此时实际在做的是实例化 BaseTest 并在其上运行 ACommonTest。然后实例化 DerivedTest 并运行 ASpecificTest。