我想测试的控制器包含以下内容:
filterText: '',
filteredFoos: (Ember.A()),
filterFoosImpl: function() {
console.log('filterFoos begin' );
var filterText = this.get('filterText');
var filteredFoos = this.forEach(function(foo) {
return (foo.get(name).indexOf(filterText) >= 0);
});
this.set('filteredFoos', filteredFoos);
},
filterFoos: function() {
Ember.run.debounce(this.filterFoosImpl.bind(this), 300);
}.observes('model', 'filterText'),
现在我想写一个test
,它Assert当我设置filterText
时,filteredFoos
被更新。
为了正确地执行此操作,我需要考虑Ember.run.debounce
,并在执行Assert之前等待它的出现。
2条答案
按热度按时间qgzx9mmu1#
我也遇到了这个问题,为了解决
debounce
,我做了以下操作:我正在测试的组件如下所示:
jdgnovmf2#
新增
在你Assert之前
参见https://guides.emberjs.com/v3.15.0/testing/testing-components/#toc_waiting-on-asynchronous-behavior,它有一个具体的例子,为ember去抖动。
我花了一段时间才找到这个:)。