在我的C ++库中,我有两个全局定义的向量。
vector< vector<float> > history;
vector< vector<float> > graph;
我是单元测试的新手,并试图弄清楚这些全局定义的向量是否从测试持续到测试。我有两个相同的历史测试,一个接一个,第一个通过,第二个失败。当我在第一次测试结束时添加history.clear()
时,问题停止并且都通过了。所以这让我觉得他们显然是坚持不懈的。但是,在一次测试中,我调用下面的drawGraph
例程,然后检查它的大小 - 它已被填充。但是,在下一个顺序测试graph.size()
等于零。我正在使用Visual Studio 2015,它内置于单元测试框架中。这是为什么?
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);
values.clear();
};
void drawGraph() {
float m, c, j, x1, x2;
graph.clear();
int i = 0;
while (i < history.size() - 1) {
j = i + 1;
x1 = history[i][0];
x2 = history[j][0];
m = history[j][3] / history[j][2];
c = history[i][1] - m*x2;
i++;
values.push_back(x1);
values.push_back(x2);
values.push_back(m);
values.push_back(c);
graph.push_back(values);
values.clear();
}
};