[英]How to reuse Mock dependencies in Angular Unit Test?
我在 Angular 中编写单元测试,我是 mocking 重复所有规范中的所有服务,TestBed.configureTestingModule 在所有规范文件中具有相同的代码。 是否可以将此 TestBed.configureTestingModule 和 Mock 依赖项移动到某个公共文件中,并且可以在我们想要的任何地方注入/使用?
describe(()=>{
@Injectable({ providedIn: 'root' })
class MockFirstService {
constructor() { };
show() { };
hide() { };
}
@Injectable({ providedIn: 'root' })
class MockSecondWebApiService extends ApiBaseService {
constructor(http: HttpClient
, blockUI: BlockUIService
) {
super(http, blockUI, cache, { baseUrl: baseUrl });
}
}
beforeEach(()=>{
TestBed.configureTestingModule({
imports: [RouterTestingModule, HttpClientTestingModule],
providers: [
Injector,
ApplicationRef,
CacheService,
LocalStorageProvider,
{
provide: FirstService ,
useClass: MockFirstService
},
{
provide: SecondWebApiService ,
useClass: MockSecondWebApiService
},
],
}),
}
}
是的你可以。 不要将@Injectable
用于MockServices
。 只需创建一个stub
文件夹并在该文件夹中创建所有 MockServices ( first.service.stub.ts
)。确保export
所有 Mock 服务。
export class MockFirstService {
show() { };
hide() { };
}
只需将其导入component.spec
文件并与useClass
一起使用。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.