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()
的{{1}}方法?FooTest()
的构造函数中?FooTest()
?答案 0 :(得分:2)
是的,你可以。
您可以假设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();
};