我有一个组件,该组件接收要动态创建为子代的组件的组件类。

let componentFactory = this.componentFactoryResolver.resolveComponentFactory(componentToCreate);
this.componentReference = this.target.createComponent(componentFactory);

我正在尝试编写一个单元测试,并通过一些TestComponent来创建和渲染。
TestBed
  .configureTestingModule(<any>{
    declarations: [MyAwesomeDynamicComponentRenderer, TestHostComponent],
    entryComponents: [TestComponent],
  });

强制转换为“any”,因为configureTestingModule期望没有TestModuleMetadataentryComponents,但出现错误:“没有为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/

10-12 01:02