我如何在集成测试中模拟/替换组件?

时间:2016-02-22 18:47:25

标签: ember.js qunit sinon ember-qunit

我有一个组件"嵌套"这是一个网络请求,我从另一个组件" parent"中使用这个组件。

我试图为" parent"编写一些集成测试,但是它们会因为"嵌套"而失败。组件的Web请求失败。

我只是希望嘲笑一些"嵌套"而不是嘲笑请求。防止Web请求的功能。这可以通过reopen轻松实现,但当然这会导致测试"嵌套"失败。

有没有人知道是否有一种方法可以存储"嵌套"或者可以使用注册表替换"嵌套"扩展课程?

1 个答案:

答案 0 :(得分:2)

要换出一个组件,只是为了单个测试模块的目的,只需注册一个自定义组件来替换原始组件(仅适用于测试模块的范围):

moduleForComponent('component-under-test', 'description', {
  integration: true,

  beforeEach() {
    this.container.registry.register('component:nested-component', NestedComponent.extend({
      modifiedFunction() {
      }
    }));
  }
});