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