Ember.Test パッケージが提供する待機ヘルパーを使用して独自のヘルパーを構築する方法がわかりません。私が理解したいくつかのことは、ヘルパーの最後で体系的に "wait(...)" を返さなければならないということです。しかし、非同期操作が完了したことをどのように報告しますか? パラメータをwaitメソッドに渡すことができるので、promiseを渡して、非同期操作が完了したときにpromiseを解決できると思いました...しかし、うまくいきません: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 は promise の解決を待ちません。