簡體   English   中英

Ember集成測試,如何使用等待構建自定義助手?

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM