我有一个组件,该组件接收要动态创建为子代的组件的组件类。
let componentFactory = this.componentFactoryResolver.resolveComponentFactory(componentToCreate);
this.componentReference = this.target.createComponent(componentFactory);
我正在尝试编写一个单元测试,并通过一些TestComponent来创建和渲染。
TestBed
.configureTestingModule(<any>{
declarations: [MyAwesomeDynamicComponentRenderer, TestHostComponent],
entryComponents: [TestComponent],
});
强制转换为“any”,因为
configureTestingModule
期望没有TestModuleMetadata
的entryComponents
,但出现错误:“没有为TestComponent找到组件工厂”。如何将
entryComponents
提供给TestBed
? 最佳答案
如果需要,也可以直接将其放入测试文件中:
import { BrowserDynamicTestingModule } from '@angular/platform-browser-dynamic/testing'; // DO not forget to Import
TestBed.configureTestingModule({
declarations: [ MyDynamicComponent ],
}).overrideModule(BrowserDynamicTestingModule, {
set: {
entryComponents: [ MyDynamicComponent ],
}
});
关于javascript - 为TestBed提供 “entryComponents”,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/41483841/