我正在更新一个曾经使用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
(我也遇到了同样的问题,它也破坏了我的十几个单元测试(