[英]Ember Integration Testing, How to use wait to build a custom Helper?
我不明白如何使用Ember.Test包提供的等待幫助程序來構建我們自己的幫助程序。 我了解的是,我們必須在助手的末尾系統地返回“ wait(...)”。 但是如何報告我的異步操作已完成? 我們可以將參數傳遞給wait方法,所以我認為可以將其傳遞給一個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解析。
嘗試將解決的承諾包裝在Ember.run.later
而不要使用setTimeout
:
...
Ember.run.later(function(){
ok(false, "Assertion failed");
promise.resolve();
}, 1000);
...
希望能幫助到你。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.