代码之家  ›  专栏  ›  技术社区  ›  Matt d'

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

  •  0
  • Matt d'  · 技术社区  · 8 年前

    我有一个“嵌套”的组件,它发出一个web请求,我正在使用另一个组件“父”的这个组件。

    我正试图为“父”编写一些集成测试,但由于“嵌套”组件的web请求失败,这些测试失败了。

    我没有模仿这些请求,我只是希望模仿一些“嵌套”功能来阻止web请求。这很容易实现 reopen ,但这当然会导致“嵌套”测试失败。

    有人知道我是否有一种方法可以存根“嵌套”的片段,或者使用注册表将“嵌套”替换为扩展类?

    1 回复  |  直到 8 年前
        1
  •  2
  •   Matt d'    8 年前

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

    moduleForComponent('component-under-test', 'description', {
      integration: true,
    
      beforeEach() {
        this.container.registry.register('component:nested-component', NestedComponent.extend({
          modifiedFunction() {
          }
        }));
      }
    });