我今天遇到了类似的问题,我有一个要填充测试数据的结构,该数据将作为参数传递给我正在测试的函数。我想拥有这些结构的向量,并正在寻找一种可以初始化每个结构的单线方法。
我最终在struct中使用了构造函数,我认为在您的问题的一些答案中也建议使用该函数。
让构造函数的参数与公用成员变量具有相同的名称,这是一种不好的做法,需要使用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);
}