Testing 余烬简单身份验证、验收测试和等待异步操作

Testing 余烬简单身份验证、验收测试和等待异步操作,testing,asynchronous,ember.js,acceptance-testing,ember-simple-auth,Testing,Asynchronous,Ember.js,Acceptance Testing,Ember Simple Auth,在验收测试中挣扎。从基本登录测试开始: import { test } from 'qunit'; import moduleForAcceptance from 'static/tests/helpers/module-for-acceptance'; moduleForAcceptance('Acceptance | authentication'); test('login', function(assert) { visit('/'); click('.nav-bar__lo

在验收测试中挣扎。从基本登录测试开始:

import { test } from 'qunit';
import moduleForAcceptance from 'static/tests/helpers/module-for-acceptance';

moduleForAcceptance('Acceptance | authentication');

test('login', function(assert) {
  visit('/');
  click('.nav-bar__login-link');
  andThen(function() {
    assert.notOk(find('.login-form__submit-button').attr('disabled'));
  });

  fillIn('.login-form__email-block input', "ruz@email.com");
  fillIn('.login-form__password-block input', "qwe");
  click('.login-form__submit-button');

  andThen(function() {
    console.log("ftw");
    assert.equal(find('.nav-bar__profile-link').text(), "some");
  });
});

问题是在身份验证完成之前调用了第二个回调。这是jqueryajax请求和之后的一些承诺。从我看到的情况来看,ember等待ajax查询完成,而不是等待承诺得到解决/拒绝。这项测试应该开箱即用吗?我必须写一封定制服务生信吗?

听起来你的承诺可能不正确?但是不,您应该能够使用验收测试助手编写测试,而不必担心异步调用自行解决(或承诺解决)

您可能想看看我不同意的问题,
然后
不等待通过
new Ember.RSVP.Promise
创建的正常承诺,而是等待
new Ember.Test.Promise
s。你退房了吗。我会提供一个简单的案例,如果你能通过正确的承诺来实现,我将不胜感激。相当清楚地表明,然后等待承诺,您的设置中有什么不起作用?我希望在晚上(UTC+03:00)到家时准备一个小游戏。你能看看下面的吗?有四条路线在模板方面彼此相同。区别在于单击按钮后触发操作时的承诺用法。不创建任何余烬承诺的简单ajax调用只需等待
,然后等待
。类似地,
Ember.Test.Promise
按预期工作。然而;
没有等待
使用余烬.RSVP.Promise
窗口.setTimeout
。请取消对
RSVP Promise路由验收测试
简单超时路由验收测试
文件中的代码的注释,使其失败
然后
将不会等待它们并简单地完成;因此,他们将失败。