在Ember组件测试中对子组件进行存根

时间:2016-03-11 06:18:40

标签: ember.js

假设我有一个深层嵌套的组件结构,并且我不想存根所有子组件及其子组件的依赖关系(主要是服务和ajax调用)。有没有办法将类似Ember.Component.create({})的存根注入容器中以替换该测试的真实存根。它似乎应该是可能的,但我似乎无法弄清楚语法或在任何地方找到它。

1 个答案:

答案 0 :(得分:7)

经过多次试验后,结果非常简单:

moduleForComponent('test-component', 'Integration | Component | test', {
    integration: true,
    beforeEach: function () {
        this.owner.register('component:test-component2', Ember.Component.extend());
    }
});

{{test-component2}}内的{{test-component}}将成为默认的Ember组件。

要同时存根模板,请在this.owner.register('template:components/test-component2', '')回调中添加beforeEach

Ember 2 使用this.register(...)代替this.owner.register(...)

编辑:根据评论更新(Ember 3语法,模板存根)