我正在尝试使用Visual Studio 2015及其测试框架为C ++例程编写单元测试。我已经按照教程设置了测试项目,但是我正在运行的第一个测试仍然失败。
我的日常工作我想测试一下:
vector< vector<int> > history;
vector<int> values;
void populateArray(int input, int time) {
values.push_back(time);
values.push_back(input);
if (history.size() > 0) {
values.push_back(values[0] - history.back()[0]);
values.push_back(values[1] - history.back()[1]);
values.push_back(values[3] / values[2]);
}
history.push_back(values);
};
我的测试代码:
TEST_CLASS(MyTests)
{
public:
TEST_METHOD(Array_Populates)
{
int i = 0;
while (i < 2) {
populateArray(dummyData[i][0], dummyData[i][1]);
Assert::AreEqual(history[i][0], dummyData[i][1]);
i++;
}
int j = 0;
while (j < history.size()) {
j++;
}
}
int const MyTests::dummyData[15][2] = {
{ 95, 86400 },
{ 77, 172800 },
{ 76, 259200 },
{ 75, 345600 },
{ 65, 432000 },
{ 65, 518400 },
{ 65, 604800 },
{ 60, 691200 },
{ 52, 777600 },
{ 51, 864000 },
{ 50, 950400 },
{ 40, 1036800 },
{ 40, 1123200 },
{ 40, 1209600 },
{ 35, 1296000 }
};
};
我试图用Dummy Array的一行逐行填充向量。完成之后,我想检查每一行是否正确。但是,如果我运行测试,循环不止一次,它会失败,说预期值为95,但实际值为77.我不确定这是否是矢量代码的错误,但我可以看不到一个。或者,如果是我对单元测试代码的理解。
感谢您的帮助。