【问题标题】:Angular9 debugElement.classes['my-class'] now returns undefinedAngular9 debugElement.classes['my-class'] 现在返回 undefined
【发布时间】:2020-03-04 14:23:33
【问题描述】:

我正在更新一个曾经使用 Angular 8 的存储库。 在测试中,使用 TestBed,我正在检查一个类是否存在,使用: fixture.debugElement.classes['my-class'].toBe(false)

更新到 Angular 9 后,此测试不再有效,因为当类不存在时表达式不再返回 false,它返回 undefined。 我已经使用以下方法修复了测试: fixture.debugElement.classes['my-class'].toBeFalsy() 恐怕其他的东西正在悄无声息地失败。

检查 Angular 文档,类应该只返回一个布尔值: classes: { [key: string]: boolean; }

在任何情况下classes 会返回未定义?

【问题讨论】:

    标签: angular angular9 testbed


    【解决方案1】:

    正如 Ivy 文档所说:

    DebugElement.classes 为已添加然后随后删除的类返回 undefined(以前,添加和随后删除的类的值为 false)。

    https://angular.io/guide/ivy-compatibility

    (我遇到了完全相同的问题,它也破坏了我的十几个单元测试)

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2014-04-04
      • 2015-06-26
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多