小编Gre*_*gor的帖子

指定Google测试夹具的构造函数参数

通过Google测试,我想指定一个测试夹具,用于不同的测试用例.fixture必须分配和释放类TheClass及其数据管理类的对象TheClassData,其中数据管理类需要数据文件的名称.
对于不同的测试,文件名应该有所不同.

我定义了以下Fixture:

class TheClassTest : public ::testing::Test {
 protected:
  TheClassTest(std::string filename) : datafile(filename) {}
  virtual ~TheClassTest() {}
  virtual void SetUp() {
    data = new TheClassData(datafile);
    tc = new TheClass(data);
  }
  virtual void TearDown() {
    delete tc;
    delete data;
  }

  std::string datafile;
  TheClassData* data;
  TheClass* tc;
};
Run Code Online (Sandbox Code Playgroud)

现在,不同的测试应该使用具有不同文件名的夹具.想象一下这是设置测试环境.

问题:如何从测试中指定文件名,即如何调用灯具的非默认构造函数?

我发现喜欢的东西::testing::TestWithParam<T>TEST_P,这没有帮助,因为我不希望运行具有不同值的一个测试,但不同的测试用一个夹具.

c++ constructor unit-testing googletest

10
推荐指数
3
解决办法
1万
查看次数

标签 统计

c++ ×1

constructor ×1

googletest ×1

unit-testing ×1