【发布时间】: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 运行我的测试:
- 从我的项目中删除“Jasmine 测试框架”NuGet 包,并将其替换为“jasmine.js”NuGet 包。
- 将 jasmine specrunner.html 文件添加到引用我的测试及其依赖项的测试目录中
- 在 Tools->Options->Chutzpah->Unit Test Explorer 中将测试模式设置为 HTML
- 从测试资源管理器窗口运行测试
这使我的测试成功运行,但是当我尝试通过右键单击->“运行 JS 测试”运行时仍然遇到相同的异常,并且我也无法调试测试。
问题似乎是我的引用都没有得到解决(过滤方法在 jquery 中定义)所以也许我需要使用 require.js 或其他一些模块加载器来解决我的依赖关系?
【问题讨论】:
-
在您的测试 xml 中引用 jquery 并尝试
-
@Baz1nga 我不关注,什么测试 xml?
-
如果您仍然遇到此问题,请在 Chutzpah.codeplex.com 上提交问题并附上您问题的压缩副本。
-
感谢现在已修复
标签: knockout.js typescript jasmine chutzpah