gpt4 book ai didi

unit-testing - Angular 2 TestModuleMetadata 没有 EntryComponents 属性

转载 作者:太空狗 更新时间:2023-10-29 17:29:57 25 4
gpt4 key购买 nike

我正在使用 Angular CLI 1.0.0-beta.32.2 并正在为 Angular 2 服务编写单元测试,该服务动态创建一个组件并将其插入另一个组件。

在我的单元测试中,我尝试创建一个模拟组件来测试我的服务,但是 ng test 的输出抛出错误,指出我的模拟组件在 entryComponents 中指定属性(property)。当我尝试将组件添加到 entryComponents 中时TestModuleMetadata 对象的属性,如下所示:TestBed.createTestingModule({...entryComponents: [ TestDialogComponent ]...})我看到以下错误说明 entryComponents属性不存在。

Chrome 56.0.2924 (Windows 10 0.0.0) DialogService should create a child component when opening FAILED
Error: No component factory found for TestDialogComponent. Did you add it to @NgModule.entryComponents?

查看 TestModuleMetadata 定义表明 entryComponents 属性不存在。那么我该如何在 Angular 2 和 Jasmine 的单元测试中动态创建组件呢?

最佳答案

据我所知还没有支持。作为解决方法,您可以使用 entryComponent 创建假模块并将其导入您的测试模块

@NgModule({
imports: [CommonModule],
declarations: [TestDialogComponent],
entryComponents: [TestDialogComponent]
})
export class FakeTestDialogModule {}

然后

TestBed.configureTestingModule({
imports: [FakeTestDialogModule]

关于unit-testing - Angular 2 TestModuleMetadata 没有 EntryComponents 属性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42398059/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com