在SetUpTestCase中使用GetParam()

时间:2016-09-08 15:12:53

标签: c++ googletest

我有一个参数化测试,我使用 SetUpTestCase()函数,如下所示:

class SimulationTest : public ::testing::TestWithParam<SimulationTestParameters> {
    public:
    static void SetUpTestCase() {
----->   SimulationTestParameters params = GetParam();
         ...
    }
    .... more code ... 
}

我想从那里调用 GetParam()函数,但由于 SetUpTestCase()是静态的,我收到此错误:

  

无法调用成员函数'... GetParam()...'无对象:
      SimulationTestParameters params = GetParam();
      _____________________________________ ^

无法从静态功能中访问参数吗? 我还尝试在标准构造函数中获取参数值,但静态函数无法访问构造函数中的非静态变量集。

任何帮助都将不胜感激。

最佳,
罗密欧

1 个答案:

答案 0 :(得分:0)

您可能没有做您想做的事。

SetupTestCase是静态的,因为每个测试夹具都会调用它一次,因此从那里获取单个测试用例参数毫无意义。

每个 test 调用一次安装程序,因此您可以在其中为特定测试用例运行时从那里调用GetParam。