我有一个相当特殊的用例:我有一个输入字段,当用户停止输入 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 个测试用例,第一个测试用例顺利通过。
我想我的问题是:如何正确地做到这一点?我在这里错过了什么或者我做错了什么?我怎样才能简单地让测试用例超时?
谢谢你的暂停!