0

我使用名为 EdgeJS 的 TypeScript编写了一个图形测量库。我还使用 Jasmine 编写了单元测试来验证它是否正确。

问题是我的测试失败,根本原因是我有一个函数来初始化填充为零而不是未定义的数组,并且初始化方法似乎“记住”了它已初始化的数组,这会影响结果。

您可以在单元测试页面的控制台输出中看到,这一行打印出带有数字的数组,而不是我预期的零。

4

1 回答 1

1

我整理了这个简短的例子。

  1. 取回不同长度的数组没有任何问题
  2. 如果我更改它们,我不会有任何问题记住任何值

如果您可以提供从 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)
于 2012-10-30T11:09:36.450 回答