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

时间:2021-02-21 11:30:37

标签: javascript jasmine chutzpah

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 网页 - 打开它后,我可以编辑测试,取消注释该行并得到我期望的结果(但仅限于几秒钟,直到结果页面变成“找不到文件”)。

输出窗口显示

<块引用>

执行测试文件时发生未知错误。收到退出代码 2

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

1 个答案:

答案 0 :(得分:1)

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