如何在ember中存根组件的操作?

时间:2016-10-17 18:28:55

标签: ember.js ember-data qunit ember-qunit ember-testing

我创建了一个组件,其操作使用商店服务。如何从集成测试中存根此操作?

// 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}}`);

Action loadPartners不作为参数传递给组件助手。它只是静态组件的动作。

所以问题是如何从集成测试中存根动作loadPartners?

1 个答案:

答案 0 :(得分:2)

在集成测试中,您不应更改组件的内部部分。而不是它,您应该更改组件的依赖项的实现。

所以在这种情况下,你应该存根storeSee如何存根store

Ref from Guide