我正在尝试对我的knockout viewmodels运行jasmine测试,它是通过chutzpah用typescript编写的,但由于以下错误,这似乎是不可能的:

Chutzpah Error: Object doesn't support property or method 'filter'

每当我访问可观察到的knockout时,就会抛出此错误,并可以通过下面的简单示例重新创建。
/// <reference path="../../typings/jquery/jquery.d.ts" />
/// <reference path="../../typings/knockout/knockout.d.ts" />
/// <reference path="../../typings/jasmine/jasmine.d.ts" />

module Example {
    export class KnockoutClass {
        public anObservable = ko.observable<string>();

        public aComputed = ko.computed<boolean>(() => {
            return this.anObservable().length() > 5;
        });
    }
}

describe("This", () => {
    it(" will throw an error", () => {

        var temp: Example.KnockoutClass = new Example.KnockoutClass();

    });
});

我在这里做的是根本性的错误还是chutzpah与knockout/typescript组合不兼容?
更新
所以我让Chutzpah做了如下的测试:
从我的项目中删除“jasmine test framework”nuget包,并将其替换为“jasmine.js”nuget包。
将jasmine specrunner.html文件添加到“我的测试”目录中,该目录引用我的测试及其依赖项
在“工具”->“选项”->“chutzpah”->“单元测试资源管理器”中,将测试模式设置为HTML
从测试资源管理器窗口运行测试
这使我的测试成功运行,但是当我尝试通过右击->运行RJS测试运行时,我也会遇到同样的异常,并且我也不能调试测试。
问题似乎是我的引用都没有被解决(filter方法是在jquery中定义的),所以我可能需要使用require.js或其他模块加载程序来解决我的依赖关系?

最佳答案

这可以通过升级到chutzpah的最新版本来解决。

关于knockout.js - Chutzpah错误:对象不支持属性或方法“过滤器”,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/19025107/

10-09 22:04