单元测试C ++与VS2015测试矢量人口

时间:2015-12-15 13:18:33

标签: c++ visual-studio unit-testing

我正在尝试使用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.我不确定这是否是矢量代码的错误,但我可以看不到一个。或者,如果是我对单元测试代码的理解。

感谢您的帮助。

0 个答案:

没有答案