在Google Test中,我可以从构造函数中调用GetParam()吗?

时间:2018-06-19 04:43:22

标签: c++ googletest

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()
  • 的初始化列表中

1 个答案:

答案 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();
};