2

我正在尝试在我的淘汰视图模型上运行茉莉花测试,通过 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 或其他一些模块加载器来解决我的依赖关系?

4

1 回答 1

0

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

于 2014-01-14T16:10:54.717 回答