我有这个集成测试:
test('can change chord text', function(assert) {
this.render(hbs`{{chart-editor-chord chord=chord}}`);
this.$().click();
assert.ok(!!this.$('.chord-input').length);
});
但断言失败,组件模板如下所示:
<div {{action 'changeChord'}} class="measure-chord chord-big">
{{#if chord.editing}}
<input type="text" value="{{chord.name}}" class="chord-input">
{{else}}
{{chord.name}}
{{/if}}
</div>
和组件代码:
import Ember from 'ember';
export default Ember.Component.extend({
store: Ember.inject.service(),
actions: {
changeChord() {
this.chord.set('editing', true);
}
}
});
我正在更新操作中的chord
模型,changeChord()
如果我在浏览器中进行测试,它确实可以工作,但集成测试失败。那么,模型中的这种变化是否必须与模板同步呈现?我尝试在测试中使用 wait() 但这并没有什么不同。那么我应该如何测试呢?