Angular的NO_ERRORS_SCHEMA存在问题?

Man*_*uel 10 unit-testing angular

在测试具有子组件的组件时,您有以下几种选择:

  1. 导入设置组件和子组件的模块.问题是你实例化真正的子组件及其依赖项.
  2. 模拟子组件.这可能很繁琐,具体取决于它有多少个子组件.
  3. 使用NO_ERRORS_SCHEMA和忽略子组件.

鉴于大多数时候你只关心当前的组件,为什么NO_ERRORS_SCHEMA在测试教程,博客文章等中没有给予更多关注?

我知道它被标记为实验性的,但我并不为此感到困扰

  1. 它与Angular的其余部分一起发货,并且
  2. 考虑到它的历史和即将发布的周期,整个Angular堆栈几乎是实验性的.

那么有问题NO_ERRORS_SCHEMA吗?或者只是偶然的事情,它不会被提升更多?

get*_*saf 3

我同意 @jonsharpe 的评估,因为当您使用 NO_ERROR_SCHEMA 时隐藏任何模板错误,您可能会掩盖架构错误。

导入模块的替代方法会TestBed导致依赖树地狱。

还有第三种替代浅层渲染,它将自动模拟您的依赖关系树,以便您通过单行测试设置获得类型安全、模板安全和依赖关系树解析。

完全公开,我是浅层渲染的作者。