我创建了一个使用Kendo UI的日期选择器组件。我想编写一个单元测试,断言日期选择器在其输入字段被聚焦时打开。不幸的是,我在隔离运行时编写的测试通过,但在运行其他测试时失败。这是我的组成部分:
//components/date-input.js
import Ember from 'ember';
export default Ember.TextField.extend({
_datePicker: null,
setupDatePicker: function() {
var datePicker = this.$().kendoDatePicker();
this.set('_datePicker', datePicker.data('kendoDatePicker'));
}.on('didInsertElement'),
destroyDatePicker: function() {
var datePicker = this.get('_datePicker');
if (datePicker) {
datePicker.destroy();
}
this.set('_datePicker', null);
}.on('willDestroyElement'),
openDatePicker: function() {
this.get('_datePicker').open();
}.on('focusIn')
});
和我的单元测试:
//tests/unit/components/date-input-test.js
import {
moduleForComponent,
test
} from 'ember-qunit';
moduleForComponent('date-input', 'DateInputComponent');
test('it opens the date picker when focused', function() {
expect(2);
this.append();
equal($('.k-calendar-container').css('display'), 'none',
'calendar is hidden by default');
this.subject().$().focus();
/**** This assertion fails. ****/
equal($('.k-calendar-container').css('display'), 'block',
'calendar is displayed after focus');
});
使用完整的测试套件运行时,最终断言失败:
DateInputComponent: it opens the date picker when focused
✘ calendar is displayed after focus
expected block
actual none
是否有任何理由会在隔离时通过,但在与其他测试套件一起运行时会失败?我使用Ember CLI 0.1.12,它使用Ember 1.8.1。
编辑:我已将完整的源代码推送到https://github.com/pmdarrow/ember-sandbox/tree/kendo-datepicker-test-issue,以证明此问题。