【问题标题】:How can globally I mock/replace components in integration tests?我如何在全球范围内模拟/替换集成测试中的组件?
【发布时间】:2016-06-04 08:09:37
【问题描述】:

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

我正在尝试为“父级”编写一些集成测试,但由于“嵌套”组件的 Web 请求失败,因此它们失败了。

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

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

【问题讨论】:

    标签: ember.js qunit sinon ember-qunit


    【解决方案1】:

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

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

    【讨论】:

      猜你喜欢
      • 2015-05-31
      • 1970-01-01
      • 2016-02-06
      • 2016-09-30
      • 2020-07-11
      • 2021-09-07
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多