Angularjs   发布时间:2022-04-20  发布网站:大佬教程  code.js-code.com
大佬教程收集整理的这篇文章主要介绍了单元测试 – Angular 2 TestModuleMetadata没有EntryComponents属性大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
我正在使用Angular CLI 1.0.0-beta.32.2并正在为Angular 2服务编写单元测试,该服务动态创建一个Component并将其插入另一个Component.

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

Chrome 56.0.2924(Windows 10 0.0.0)Dialogservice应在打开Failed时创建子组件
错误:找不到TestDialogComponent的组件工厂.你有没有把它添加到@ NgModule.entryComponents?

查看TestModuleMetadata定义显示entryComponents属性不存在.那么如何在Angular 2和Jasmine的单元测试中动态创建一个Component呢?

解决方法

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

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

然后

TESTBed.configureTesTingModule({
    imports: [FakeTestDialogModule]

大佬总结

以上是大佬教程为你收集整理的单元测试 – Angular 2 TestModuleMetadata没有EntryComponents属性全部内容,希望文章能够帮你解决单元测试 – Angular 2 TestModuleMetadata没有EntryComponents属性所遇到的程序开发问题。

如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。