我对测试时覆盖组件的使用感到困惑
在下面的代码中,我模拟了一个名为HomeModel
的服务。
使用overrideComponent
TestBed
.configureTestingModule({
imports: [CoreModule],
declarations: [HomeComponent],
providers: [
{provide: Router, useValue: router}
],
schemas: [NO_ERRORS_SCHEMA]
})
.overrideComponent(HomeComponent, {
set: {
providers: [
{provide: HomeModel, useClass: MockHomeModel}
],
}
})
.compileComponents();
}));
没有overrideComponent
TestBed
.configureTestingModule({
imports: [CoreModule],
declarations: [HomeComponent],
providers: [
{provide: Router, useValue: router},
{provide: HomeModel, useClass: MockHomeModel}
],
schemas: [NO_ERRORS_SCHEMA]
})
.compileComponents();
}));
我们不能只在useClass
中指定providers
而不是覆盖该组件吗?在我的情况下,它只有在我覆盖时才有效。后者不起作用。
overrideComponent
在测试中的主要用途是什么?