cod*_*der 8 unit-testing angular
我有:
beforeEach(() => {
TestBed.configureTestingModule({
providers: [
DocumentsLoaderSvc,
{ provide: MgrSvc, useClass: MockMgrSvc },
{ provide: URLLoaderSvc, useClass: MockURLLoaderSvcWhenData}
]
});
});
Run Code Online (Sandbox Code Playgroud)
如何使用另一个模拟器覆盖URLLoaderSvc,在具有自己独特要求的"it"情况下?有没有像TestBed.overrideProvider这样的东西...现在,我在它自己的"描述"中有每个声明,它有自己的beforeEach.
也许您最好的选择是使模拟可配置,以满足不同测试用例的需求。将其保留为实例并使用useValue而不是useClass
let urlLoderSvc: URLLoaderSvc;
beforeEach(() => {
urlLoaderSvc = new URLLoaderSvc();
TestBed.configureTestingModule({
providers: [
DocumentsLoaderSvc,
{ provide: MgrSvc, useClass: MockMgrSvc },
{ provide: URLLoaderSvc, useValue: urlLoaderSvc }
]
});
});
Run Code Online (Sandbox Code Playgroud)
现在,在您的it测试用例中,您只需配置urlLoaderSvc实例即可执行您想要的操作。
| 归档时间: |
|
| 查看次数: |
2927 次 |
| 最近记录: |