假设我有一个测试配置,如下所示
TestBed.configureTestingModule({
imports: [HttpClientTestingModule],
providers: [SomeService]
});
injector = getTestBed()如果我想获得注入服务,那么
TestBed.get(SomeService)
injector.get(SomeService)发布于 2019-10-08 06:06:46
这很有趣。我认为这是getTestBed和TestBed之间的区别:
TestBed配置和初始化用于单元测试的环境,并提供在单元测试中创建组件和服务的方法。getTestBed返回适用的TestBed的单例。
更深
TestBed是用于编写面向角度应用程序和库的单元测试的主api。
interface TestBed {
platform: PlatformRef
ngModule: Type<any> | Type<any>[]
initTestEnvironment(ngModule: Type<any> | Type<any>[], platform: PlatformRef, aotSummaries?: () => any[]): void
resetTestEnvironment(): void
resetTestingModule(): void
configureCompiler(config: { providers?: any[]; useJit?: boolean; }): void
configureTestingModule(moduleDef: TestModuleMetadata): void
compileComponents(): Promise<any>
get<T>(token: Type<T> | InjectionToken<T>, notFoundValue?: T, flags?: InjectFlags): any
execute(tokens: any[], fn: Function, context?: any): any
overrideModule(ngModule: Type<any>, override: MetadataOverride<NgModule>): void
overrideComponent(component: Type<any>, override: MetadataOverride<Component>): void
overrideDirective(directive: Type<any>, override: MetadataOverride<Directive>): void
overridePipe(pipe: Type<any>, override: MetadataOverride<Pipe>): void
overrideProvider(token: any, provider: { useFactory: Function; deps: any[]; }): void
overrideTemplateUsingTestingModule(component: Type<any>, template: string): void
createComponent<T>(component: Type<T>): ComponentFixture<T>
}然后,TestBedViewEngine或TestBedRender3.的实例是getTestBed。
const getTestBed: () => TestBed;https://stackoverflow.com/questions/58280634
复制相似问题