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

Javascript Chutzpah或Jasmine不允许我运行使用原型的测试,javascript,jasmine,chutzpah,Javascript,Jasmine,Chutzpah,Chutzpah和Jasmine在我的VisualStudio解决方案中运行良好,用于我的javascript测试 我有一个问题,我认为这是胡说八道,但我不是100%肯定(可能是茉莉花) 我现在需要测试我的扩展方法,它包含与 if (!Array.prototype.where) { Array.prototype.where = function(callback) { const arr = []; this.forEach(function(item

Chutzpah和Jasmine在我的VisualStudio解决方案中运行良好,用于我的javascript测试

我有一个问题,我认为这是胡说八道,但我不是100%肯定(可能是茉莉花)

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

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);        
我无法在VisualStudio中通过命令行或Chutzpah插件运行此测试(并且它在VS中没有显示为可行的测试)

如果我注释掉
constresult=array.where(a=>a==fixedInput)然后发现测试

如果我执行测试,注释掉这一行,就会显示测试结果的Jasmine网页——打开它,我可以编辑测试,取消注释这一行,然后得到我期望的结果(但只有几秒钟,直到结果页面变成“未找到文件”)

输出窗口显示

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


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

您可能遇到了Chutzpah默认使用旧JS引擎的问题。您应该将chutzpah.json配置为使用较新的扩展方法

您是否实际使用了一个基本上是
数组的扩展方法。使用不同的名称筛选
,或者这纯粹是一个示例?@JLRishe-事实证明。。。是:)。。。我不知道
查找
。但是,对于
HTMLCollection
NodeList
我也有这样的功能,对
C
更熟悉。。。虽然我想即使有更好的方法(通过使用
查找
),所描述的问题仍然存在,这是一个有效的问题,但我想说,修改原型来添加您发明的东西是非常不明智的。在我发表评论一分钟后,我编辑了我的评论,但实际上你看到的是Array.filter,它从2009年就出现了!对于不是数组的东西,您可以执行
Array.from(nodeList).filter(someCondition)
Hi-我知道您是谁,并关注您的帖子/博客等。请稍等-感谢您为社区所做的一切。太多的恭维话,无法在评论中给出,所以我将留下它,谢谢!您能否确认您链接到的文件中的JSON进入项目根目录下的chutzpah JSON文件?是,在chutzpah.JSON的顶层添加“引擎”和“引擎选项”(可选)