我今天遇到了类似的问题,我有一个结构,我想用测试数据填充这些数据,这些数据将作为参数传递给我正在测试的函数。我想拥有这些结构的向量,并正在寻找一种单线方法来初始化每个结构。
我最终在结构中使用了一个构造函数,我相信在你的问题的一些答案中也提出了这个建议。
让构造函数的参数与公共成员变量具有相同的名称可能是不好的做法,需要使用this
指针。如果有更好的方法,有人可以建议编辑。
typedef struct testdatum_s {
public:
std::string argument1;
std::string argument2;
std::string argument3;
std::string argument4;
int count;
testdatum_s (
std::string argument1,
std::string argument2,
std::string argument3,
std::string argument4,
int count)
{
this->rotation = argument1;
this->tstamp = argument2;
this->auth = argument3;
this->answer = argument4;
this->count = count;
}
} testdatum;
我在测试函数中使用它来调用正在测试的函数,其中包含如下各种参数:
std::vector<testdatum> testdata;
testdata.push_back(testdatum("val11", "val12", "val13", "val14", 5));
testdata.push_back(testdatum("val21", "val22", "val23", "val24", 1));
testdata.push_back(testdatum("val31", "val32", "val33", "val34", 7));
for (std::vector<testdatum>::iterator i = testdata.begin(); i != testdata.end(); ++i) {
function_in_test(i->argument1, i->argument2, i->argument3, i->argument4m i->count);
}