通过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,这没有帮助,因为我不希望运行具有不同值的一个测试,但不同的测试用一个夹具.