gpt4 book ai didi

javascript - 异步时 Ember Mocha 测试失败(使用 ember-mocha-adapter)

转载 作者:行者123 更新时间:2023-11-28 20:23:51 24 4
gpt4 key购买 nike

我无法让 mocha 与 Ember 一起工作,因为在执行以下性质的测试时它会失败:

describe('Location Panel', function () {
beforeEach(function () {
App.reset();
visit('/map/41.76721,-72.66907');
});

it('Have proper address', function () {
var $title = find('.panel-header h2');
expect($title).to.have.text('476 Columbus Blvd, Hartford');
});
});

基本上它找不到任何 DOM 元素,因为它在路由完成加载之前运行测试。如果我从测试中 visit 并使用 然后,等等。

这是一个 jsbin用于调试。

编辑

在 jsbin 中,我使用模拟的 ajax 调用,但在我的测试中,ajax 调用是真实的。我正在使用包含在以下内容中的 Ember.$.ajax:

function ajax (url, options) {
return new Ember.RSVP.Promise(function (resolve, reject) {
options = options || {};
options.url = url;

options.success = function (data) {
Ember.run(null, resolve, data);
};

options.error = function (jqxhr, status, something) {
Ember.run(null, reject, arguments);
};

Ember.$.ajax(options);
});
}

我是否也应该使用 Ember.run.later

最佳答案

您应该使用 Ember.run.later 而不是 setTimeout 以便 wait 助手知道它应该等待。

或者,您可以使用 Ember.test.registerWaiter,但我认为您在这里不需要它。

更新后的 JSBIN:http://emberjs.jsbin.com/gahe/1/edit

关于javascript - 异步时 Ember Mocha 测试失败(使用 ember-mocha-adapter),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21630048/

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