4

我有一个相当特殊的用例:我有一个输入字段,当用户停止输入 500 毫秒时发出搜索。这是作为可重复使用的附加组件开发的。

我想为此编写一个验收测试,但我无法使测试正确通过。第一次通过,第二次没有。

现在,Ember 运行循环有一个很好的描述,但它的行为真的是“别的东西”。

这是我让运行循环超时的帮手:

import Ember from 'ember';

export default Ember.Test.registerAsyncHelper('pauseFor', function (time) {
  return Ember.Test.promise(function (resolve) {
    Ember.run.later(resolve, time);
  });
});

这就是我使用它的方式

it('should do something after 500ms', function () {
  visit('/');

  fillIn('.search-input', 'a');
  pauseFor(500);

  andThen(function () {
    // do my assertions/expectations here...
  });
});

这是我得到的错误: 在此处输入图像描述

奇怪的是,我有 2 个测试用例,第一个测试用例顺利通过。

我想我的问题是:如何正确地做到这一点?我在这里错过了什么或者我做错了什么?我怎样才能简单地让测试用例超时?

谢谢你的暂停!

4

0 回答 0