Angular9 debugElement.classes['my-class'] 现在返回未定义



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

在更新到Angular 9之后,这个测试不再工作,因为当类不存在时,表达式不再返回false,而是返回undefined。我使用以下方法修复了测试:fixture.debugElement.classes['my-class'].toBeFalsy()我恐怕还有别的事情在悄无声息地失败。

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

是否存在classes将返回未定义的情况?

正如Ivy文档所说:

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

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

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

最新更新