Chutzpah 或 Jasmine 不允许我 运行 测试使用原型

Chutzpah or Jasmine does not let me run tests which use prototype

Chutzpah 和 Jasmine 运行在我 Visual Studio 的解决方案中很好,用于我的 javascript 测试。

我有一个问题,我认为这很大胆,但我不是 100% 确定(可能是 Jasmine)。

我现在需要测试我的扩展方法,它包含类似于

的代码
if (!Array.prototype.where) {
    Array.prototype.where = function(callback) {
        const arr = [];
        this.forEach(function(item) {
            if (callback(item)) {
                arr.push(item);
            }
        });
        return arr;
    };
}

我的茉莉花测试是。

    //arrange
    const array = [];
    const fixedInput = "a";
    array.push(fixedInput);
    array.push("b");
    
    //act
    const result = array.where(a => a === fixedInput);
    //console.log(result);

    //assert
    const expected = [fixedInput];
    expect(result).toBe(expected);
    expect(result.length).toBe(1);        

我无法 运行 通过命令行或 Visual Studio 中的 Chutzpah 插件进行此测试(并且它在 VS 中不显示为可行测试)

如果我注释掉 const result = array.where(a => a === fixedInput); 那么测试就会被发现。

如果我执行测试,将该行注释掉,将显示测试结果的 Jasmine 网页 - 打开它,我可以编辑测试,取消注释该行,我得到我期望的结果(但是只持续几秒钟,直到结果页面变成“找不到文件”)。

输出window显示

Unknown error occurred when executing test file. Received exit code of 2

我不知道如何解决这个问题。有什么建议吗?

您可能遇到了一个问题,即 Chutzpah 默认使用旧的 JS 引擎。您应该将 chutzpah.json 配置为使用较新的 https://github.com/mmanela/chutzpah/wiki/Browser-Engines