【问题标题】:Chutzpah Error: Object doesn't support property or method 'filter'Chutzpah 错误:对象不支持属性或方法“过滤器”
【发布时间】:2013-10-02 05:40:54
【问题描述】:

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

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

每当我访问淘汰赛 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 与淘汰赛/打字稿组合不兼容?

更新

所以我已经设法通过执行以下操作让 chutzpah 运行我的测试:

  1. 从我的项目中删除“Jasmine 测试框架”NuGet 包,并将其替换为“jasmine.js”NuGet 包。
  2. 将 jasmine specrunner.html 文件添加到引用我的测试及其依赖项的测试目录中
  3. 在 Tools->Options->Chutzpah->Unit Test Explorer 中将测试模式设置为 HTML
  4. 从测试资源管理器窗口运行测试

这使我的测试成功运行,但是当我尝试通过右键单击->“运行 JS 测试”运行时仍然遇到相同的异常,并且我也无法调试测试。

问题似乎是我的引用都没有得到解决(过滤方法在 jquery 中定义)所以也许我需要使用 require.js 或其他一些模块加载器来解决我的依赖关系?

【问题讨论】:

  • 在您的测试 xml 中引用 jquery 并尝试
  • @Baz1nga 我不关注,什么测试 xml?
  • 如果您仍然遇到此问题,请在 Chutzpah.codeplex.com 上提交问题并附上您问题的压缩副本。
  • 感谢现在已修复

标签: knockout.js typescript jasmine chutzpah


【解决方案1】:

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2014-03-12
    • 2013-04-23
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-03-31
    • 2011-08-25
    相关资源
    最近更新 更多