【发布时间】:2016-07-02 15:48:02
【问题描述】:
自 Angular 2.0.0-rc.4 版本 (change log) 以来,beforeEachProviders 和 provide 均已弃用。我的问题是如何在我的组件中注入我的模拟服务。
这是我的 beforeEach 函数,它创建了一个 ComponentFixture 并覆盖了提供者:
beforeEach(async(inject([TestComponentBuilder], (tcb)=> {
builder = tcb;
})));
beforeEach(async(inject([], ()=> {
return builder
.overrideProviders(MenubarComponent,[provide(MenubarService, {useClass:MenubarServiceMock})])
.createAsync(MenubarTestComponent)
.then((_fixture:ComponentFixture<any>)=> {
fixture = _fixture;
})
})));
这种方法效果很好,但正如我所说的 provide 已不推荐使用。
不使用 provide() 的正确方法是什么?
编辑
根据 Günter 的回答,我改了行:
.overrideProviders(MenubarComponent,[provide(MenubarService, {useClass:MenubarServiceMock})])
到:
.overrideProviders(MenubarComponent,[{provide:MenubarService, useClass:MenubarServiceMock}])
它有效!
【问题讨论】:
标签: unit-testing angular