在测试具有子组件的组件时,您有以下几种选择:
>导入设置组件和子组件的模块.问题是你实例化真正的子组件及其依赖项.
>模拟子组件.这可能很繁琐,具体取决于它有多少个子组件.
>使用NO_ERRORS_SCHEMA并忽略子组件.
鉴于大多数时候你只关心当前组件,为什么NO_ERRORS_SCHEMA在测试教程,博客文章等中没有给予更多关注?
我知道它被标记为实验性的,但我从未对此感到困扰
>它与Angular的其余部分一起发货,并且
>鉴于其历史和即将发布的周期,整个Angular堆栈几乎是实验性的.
那么NO_ERRORS_SCHEMA有问题吗?或者只是偶然的事情,它不会被提升更多?
我同意@ jonsharpe的评估,当你使用NO_ERROR_SCHEMA隐藏任何模板错误时,你可能会掩盖模式错误.
使用TestBed导入模块的替代方法会导致依赖树 – 地狱.
还有第三个备选方案shallow-render将自动模拟您的依赖关系树,以便通过一行测试设置获得类型安全性,模板安全性和依赖关系树解析.
全面披露,我是浅渲染的作者.