Google Test C++单元测试框架提供了parameterised tests的功能。要访问给定测试的参数,文档会告诉我派生一个子类并调用GetParam()
:
class FooTest : public ::testing::TestWithParam<const char*> {
// You can implement all the usual fixture class members here.
// To access the test parameter, call GetParam() from class
// TestWithParam<T>.
};
在文档或源代码中,我找不到比这更具体的东西(据我所知)。
我可以在哪里(或何时)致电
GetParam()
?我知道我可以在TEST_P(...) { ... }
宏的主体中调用它,但是呢:SetUp()
的FooTest()
方法中? FooTest()
的构造函数中? FooTest()
的初始化列表中? 最佳答案
是的你可以。
您可以假定GetParam()
是::testing::TestWithParam
基类的方法。
class FooTest : public ::testing::TestWithParam<const char*> {
std::string name;
FooTest() : name(GetParam()) {}
};
使用C++11-您甚至可以直接在类中初始化成员:
class FooTest : public ::testing::TestWithParam<const char*> {
std::string name = GetParam();
};