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

    10-08 08:54