我有:
beforeEach(() => {
TestBed.configureTestingModule({
providers: [
DocumentsLoaderSvc,
{ provide: MgrSvc, useClass: MockMgrSvc },
{ provide: URLLoaderSvc, useClass: MockURLLoaderSvcWhenData}
]
});
});
如何用另一个mock重写urlloadersvc,在一个具有自己独特需求的“it”案例中?有什么东西像测试床。重写器…现在,每一个it语句都有自己的“描述”,在每个之前都有自己的描述。
最佳答案
也许您最好的选择是使mock可以配置以满足不同测试用例的需要。将其作为实例保存,并使用useValue
而不是useClass
let urlLoderSvc: URLLoaderSvc;
beforeEach(() => {
urlLoaderSvc = new URLLoaderSvc();
TestBed.configureTestingModule({
providers: [
DocumentsLoaderSvc,
{ provide: MgrSvc, useClass: MockMgrSvc },
{ provide: URLLoaderSvc, useValue: urlLoaderSvc }
]
});
});
现在在您的
it
测试用例中,您只需将urlLoaderSvc
实例配置为执行您想要的任何操作。