我使用名为 EdgeJS 的 TypeScript编写了一个图形测量库。我还使用 Jasmine 编写了单元测试来验证它是否正确。
问题是我的测试失败,根本原因是我有一个函数来初始化填充为零而不是未定义的数组,并且初始化方法似乎“记住”了它已初始化的数组,这会影响结果。
您可以在单元测试页面的控制台输出中看到,这一行打印出带有数字的数组,而不是我预期的零。
我使用名为 EdgeJS 的 TypeScript编写了一个图形测量库。我还使用 Jasmine 编写了单元测试来验证它是否正确。
问题是我的测试失败,根本原因是我有一个函数来初始化填充为零而不是未定义的数组,并且初始化方法似乎“记住”了它已初始化的数组,这会影响结果。
您可以在单元测试页面的控制台输出中看到,这一行打印出带有数字的数组,而不是我预期的零。
我整理了这个简短的例子。
如果您可以提供从 EdgeJS 代码中获得的控制台输出的详细信息,这可能有助于确定这一点。
例子
class ArrayUtilities {
private arrayOfZeros(n: number) : number[] {
var a: number[] = [];
for (var i = 0; i < n; i++) {
a[i] = 0;
}
console.log("New array", a);
return a;
}
test() {
var a: number[] = this.arrayOfZeros(5);
for (var i = 0; i < a.length; i++) {
a[i] = 1;
}
console.log("Updated array", a);
var b: number[] = this.arrayOfZeros(6);
var c: number[] = this.arrayOfZeros(2);
}
}
var au = new ArrayUtilities();
au.test();
我得到以下输出...
New array[0, 0, 0, 0, 0]app.js?1 (line 8)
Updated array[1, 1, 1, 1, 1]app.js?1 (line 16)
New array[0, 0, 0, 0, 0, 0]app.js?1 (line 8)
New array[0, 0]app.js?1 (line 8)