gpt4 book ai didi

ember.js - Ember 测试 : You have turned on testing mode, 禁用了运行循环的自动运行

转载 作者:行者123 更新时间:2023-12-02 21:47:04 24 4
gpt4 key购买 nike

我正在尝试编写一个简单的 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");
});
});
});

最佳答案

我意识到我参加聚会迟到了,但无论如何:

在组件或应用程序代码中的某个位置(即不在测试代码中),您可能会监听 Ember 外部的某些事件(例如,通过 jQuery 的 DOM 事件或类似的事件),但尝试与它在该处理程序运行期间。这些处理函数必须封装在 Ember.run.bind() 中,否则它们在测试期间不会有运行循环。 Ember.run.bind() 还将在处理程序期间为您设置 this

如果您没有将事件回调包装在 Ember.run.bind() 中,则在应用程序正常运行期间,代码可能仍会顺利运行,因为自动运行功能会找到 runloop - 要求较高(例如,如果您在处理程序期间使用 Ember.run.schedule() 安排某些内容)与代码中的 Ember 交互并为它们启动运行循环,但它在测试中被关闭。

关于ember.js - Ember 测试 : You have turned on testing mode, 禁用了运行循环的自动运行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28747961/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com