如何在 ember 中存根组件的操作?
How to stub component's action in ember?
我创建了一个组件,其操作使用存储服务。如何从集成测试中存根此操作?
// app/components/invoice-form.js
export default Ember.Component.extend({
actions: {
loadPartners() {
let self = this;
this.get('store').findAll('partner').then(function(partners) {
self.set('partners', partners);
});
}
}
});
在该组件的模板中,我将此操作作为闭包传递给子组件:
{{button-confirmation text="Are you sure?" onConfirm=(action "loadPartners")}}
在我的集成测试中,我照常渲染组件
this.render(hbs`{{invoice-form}}`);
动作 loadPartners 没有作为参数传递给组件助手。它只是静态组件的动作。
所以问题是如何从集成测试中存根操作 loadPartners?
在集成测试中,您不应该更改组件的内部部分。相反,您应该更改组件依赖项的实现。
所以在这种情况下,你应该存根 store
。 See 如何存根 store
.
我创建了一个组件,其操作使用存储服务。如何从集成测试中存根此操作?
// app/components/invoice-form.js
export default Ember.Component.extend({
actions: {
loadPartners() {
let self = this;
this.get('store').findAll('partner').then(function(partners) {
self.set('partners', partners);
});
}
}
});
在该组件的模板中,我将此操作作为闭包传递给子组件:
{{button-confirmation text="Are you sure?" onConfirm=(action "loadPartners")}}
在我的集成测试中,我照常渲染组件
this.render(hbs`{{invoice-form}}`);
动作 loadPartners 没有作为参数传递给组件助手。它只是静态组件的动作。
所以问题是如何从集成测试中存根操作 loadPartners?
在集成测试中,您不应该更改组件的内部部分。相反,您应该更改组件依赖项的实现。
所以在这种情况下,你应该存根 store
。 See 如何存根 store
.