Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/ember.js/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ember.js 如何在ember 1.3.1中推迟/推进基于配置的集成测试?_Ember.js - Fatal编程技术网

Ember.js 如何在ember 1.3.1中推迟/推进基于配置的集成测试?

Ember.js 如何在ember 1.3.1中推迟/推进基于配置的集成测试?,ember.js,Ember.js,我对ember.js 1.3.1进行了基本的QUnit集成测试 test("try to get html", function() { App.Bootstrap.init(); visit("/").then(function() { //do some basic asserts here }); }); 诀窍是我的App.Bootstrap.init(在应用程序启动之前)进行一些配置设置 问题是,由于应用了“延迟路由”,我不能再推迟/推进自己了,因为我得到了错误 “

我对ember.js 1.3.1进行了基本的QUnit集成测试

test("try to get html", function() {
  App.Bootstrap.init();
  visit("/").then(function() {
    //do some basic asserts here
  });
});
诀窍是我的App.Bootstrap.init(在应用程序启动之前)进行一些配置设置

问题是,由于应用了“延迟路由”,我不能再推迟/推进自己了,因为我得到了错误

“由于
ready()
钩子已被激活,因此不能延迟准备就绪 称为“

下面是我的测试助手所做的(这里是基本的余烬测试内容)

注意-这在生产环境中很好地工作,因为延迟/提前工作与正常情况一样(在下面的初始值设定项中调用此init方法)。下面是在我的测试中进行的monkey补丁,因为它在我有机会模拟任何xhr之前运行(因为这通常会触发一个xhr,所以我决定在每次测试运行之前自己进行monkey补丁并调用init)

在此之后,
visit
助手将调用
App.advanceReadiness()在第一次调用中

确保您的测试设置中没有先进性,如下所示:

module('my module', {
  setup: function() {
    //...
    // App.advanceReadiness(); can be removed
  }
});
否则您将收到该错误

App.setupForTesting();
App.injectTestHelpers();
App.initializer({
  name: 'bootstrap',
  initialize: function() {
    App.Bootstrap.init();
  }
});
module('my module', {
  setup: function() {
    //...
    // App.advanceReadiness(); can be removed
  }
});