烬测试访问承诺不起作用

时间:2013-11-25 15:05:09

标签: javascript ember.js

我正在尝试使用QUnit设置ember-testing来测试我的Ember.js应用程序,这些博客帖子如下: Getting started with integration testing ember.js using ember-testing and qunit-rails

我的问题是,每当我尝试访问带有ember-testings的路径访问帮助程序时,visit(<route>).then承诺都不会被调用,但会呈现正确的视图。

这是我目前的Ember.js设置:(我也尝试过测试版)

  • Ember:1.3.0-beta.1 + canary.8f5b6e20
  • Ember数据:1.0.0-beta.4 + canary.e7996c4d
  • 把手:1.1.1
  • jQuery:1.10.2

编辑1:

QUnit仅显示测试正在运行,没有失败或成功消息。

测试

module("Ember.js Library", {
  setup: function() {
    Ember.run(App, App.advanceReadiness);
  },
  teardown: function() {
    App.reset();
  }
});

test("Check HTML is returned", function() {
  expect(2);
  visit("/").then(function() {
    ok(false, "Show me an error!");
  });
});

测试设置(test_helper.js):

document.write('<div id="ember-testing-container"><div id="ember-testing"></div></div>');
document.write('<style>#ember-testing-container { position: absolute; background: white; bottom: 0; right: 0; width: 640px; height: 384px; overflow: auto; z-index: 9999; border: 1px solid #ccc; } #ember-testing { zoom: 50%; }</style>');

App.rootElement = '#ember-testing';
App.setupForTesting();
App.injectTestHelpers();

编辑2:

QUnit似乎工作正常。如果我使用以下测试,那么QUnit测试运行器会显示正确的故障。但如果我在上面的承诺中包含断言,那么QUnit会将测试显示为正在运行,但测试似乎不会停止。

test("Check HTML is returned", function() {
  expect(2);
  ok(false, "Show me an error!");
});

2 个答案:

答案 0 :(得分:2)

问题出在Ember-Simple-Auth插件中,我使用的版本中有bug。我升级了,现在一切都按预期工作了。

@kingpin:感谢您的最小工作示例,在将其与我的代码进行比较后,我意识到,其他东西必须是挂断的原因,所以我找到了上面提到的插件。

答案 1 :(得分:1)

你错过了qunit div,将这个人与你的其他文件一起添加。写作

document.write('<div id="qunit"></div>');

http://emberjs.jsbin.com/inATaNE/1/edit