在运行循环中集成测试Ember Data模型

时间:2013-07-23 13:53:54

标签: ember.js

我想使用visit助手来进行以下路线的集成测试:

App.IndexRoute = Em.Route.extend
    model: ->
        App.Movies.find "The Godfather"

但是我的测试没有通过,我得到了:

assertion failed: You have turned on testing mode, which disabled the run-loop's autorun.
You will need to wrap any code with asynchronous side-effects in an Ember.run

不幸的是,像这样包装它并没有帮助:

App.IndexRoute = Em.Route.extend
    model: ->
        Em.run =>
            App.Movies.find "The Godfather"

(我还包裹了@App = Em.Application.create()

将代码包装到运行循环中的正确方法是什么?

我正在使用rc.5与Karma。

2 个答案:

答案 0 :(得分:0)

事实证明,我尝试获取数据的服务器返回了 404 ,这导致Ember断言。

修复服务器端ID后,发现根本不需要Em.run()

有关详细信息,请参阅GitHub:https://github.com/emberjs/ember.js/issues/3051

答案 1 :(得分:-1)

如何为测试构建数据?这是应该包装在Ember.run中的那部分(或设置属性)。

使用FixtureAdapter,你应该有这样的东西:

Ember.run(function() {
  App.Movie.FIXTURES=[{ name: "the Godfather" }, { name: "Apocalypse Now" }];
});