Chutzpah错误:对象不支持属性或方法'过滤器'

时间:2013-09-26 09:58:06

标签: knockout.js typescript jasmine chutzpah

我正在尝试在我的淘汰视图模型上运行jasmine测试,通过chutzpah用typescript编写,但由于以下错误,这似乎不可能:

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

每当我访问knockout observable时都会抛出此错误,并且可以通过以下简单示例重新创建。

/// <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通过执行以下操作来运行我的测试:

  1. 从我的项目中删除'Jasmine Test Framework'NuGet包,并将其替换为'jasmine.js'NuGet包。
  2. 将jasmine specrunner.html文件添加到我的测试目录中,该目录引用我的测试及其依赖项
  3. 在工具 - &gt;选项 - &gt; Chutzpah-&gt;单元测试资源管理器中将测试模式设置为HTML
  4. 从“测试资源管理器”窗口运行测试
  5. 这使我的测试成功运行但是当我尝试通过右键单击运行时仍然得到相同的异常 - >运行JS测试'我也无法调试测试。

    问题似乎是我的所有引用都没有被解析(过滤方法是在jquery中定义的)所以我可能需要使用require.js或其他一些模块加载器来解析我的依赖项吗?

1 个答案:

答案 0 :(得分:0)

通过升级到最新版本的Chutzpah解决了这个问题。