Jos*_*osi 6 integration-testing ember.js ember-testing ember-cli ember-qunit
我正在尝试编写一个简单的Ember集成测试,并继续获得令人沮丧的运行循环错误,尽管使用Ember.run.我有一个噩梦,试图让这个工作,如果有人可以帮助我,我会非常感激.具体来说,我可以看到测试登录并开始加载下一页(应该如此),但是一旦测试完成,我就会收到该错误.这是关于第二次测试,第一次测试(因为我认为没有任何异步).
import Ember from 'ember';
import startApp from 'jobs-tuftsdaily/tests/helpers/start-app';
import exists from 'jobs-tuftsdaily/tests/helpers/start-app';
var App;
module('Integration - Landing Page', {
setup: function() {
App = startApp();
},
teardown: function() {
Ember.run(App, 'destroy');
}
});
test('Should load content', function() {
visit('/').then(function() {
ok(exists("*"), "Found HTML!");
ok(exists('label:eq(4)'), "Slug label on page");
});
});
test('Should sign in test user', function() {
Ember.run(function() {
visit('/').andThen(function() {
return fillIn("input[name=email]", "test@test.com");
}).andThen(function() {
return fillIn("input[type=password]", "password");
}).andThen(function() {
return click("button");
}).andThen(function() {
ok(1, "stupid test passed");
});
});
});
Run Code Online (Sandbox Code Playgroud)
我意识到我参加聚会迟到了,但无论如何:
在组件或应用程序代码中的某个位置(即不在测试代码中),您可能会监听 Ember 外部的某个事件(例如,通过 jQuery 的 DOM 事件或类似的事件),但在此期间尝试与其进行交互处理程序运行。这些处理程序函数必须包装在 中Ember.run.bind(),否则它们在测试期间不会有运行循环。Ember.run.bind()也会设定this在处理程序期间为您设置。
如果您不将事件回调包装在 中Ember.run.bind(),则在应用程序正常运行期间,代码可能仍会顺利运行,因为自动运行功能会发现运行循环要求较高(例如,如果您在Ember.run.schedule()处理程序期间安排使用某些内容)与在代码中 Ember 并为它们启动一个运行循环,但它在测试中被关闭。
| 归档时间: |
|
| 查看次数: |
2054 次 |
| 最近记录: |