我不明白如何使用 Ember.Test 包提供的等待助手来构建我们自己的助手。我理解的少数是我们必须在我们的助手结束时系统地返回“等待(...)”。但是如何报告我的异步操作已完成?我们可以将参数传递给等待方法,所以我认为我可以传递一个承诺,并在我的异步操作完成时解决承诺......但它不起作用:D
为了说明我的想法,我用一个例子做了一个 JSBIN:http: //jsbin.com/OxeniTO/30/
App = Em.Application.create({
rootElement:"#ember-app"
});
App.setupForTesting();
App.injectTestHelpers();
App.advanceReadiness();
test('Wait 1000ms and fail',function(){
visit('/').then(function(){
var promise = $.Deferred();
setTimeout(function(){
ok(false, "Assertion failed");
promise.resolve();
}, 1000);
ok(true, "Assert passed");
return wait(promise);
});
});
在这种情况下,Qunit 的 Ember.Test.Adapter 不会等待承诺解决。