Angular9 debugElement.classes['my-class'] 现在 returns 未定义
Angular9 debugElement.classes['my-class'] now returns undefined
我正在更新一个曾经使用 Angular 8 的存储库。
在使用 TestBed 的测试中,我使用以下方法检查 class 是否存在:
fixture.debugElement.classes['my-class'].toBe(false)
更新到 Angular 9 后,此测试不再有效,因为当 class 不存在时表达式不再 returns false,它 return未定义。
我已经使用以下方法修复了测试:
fixture.debugElement.classes['my-class'].toBeFalsy()
恐怕还有其他事情无法保持沉默。
检查 Angular 文档,classes 应该只是 return 一个布尔值:
classes: {
[key: string]: boolean;
}
有没有classes
会return未定义的情况?
正如 Ivy 文档所说:
DebugElement.classes returns undefined for classes that were added and then subsequently removed (previously, classes added and later removed would have a value of false).
https://angular.io/guide/ivy-compatibility
(我遇到了完全相同的问题,它也破坏了我的一打单元测试)
我正在更新一个曾经使用 Angular 8 的存储库。
在使用 TestBed 的测试中,我使用以下方法检查 class 是否存在:
fixture.debugElement.classes['my-class'].toBe(false)
更新到 Angular 9 后,此测试不再有效,因为当 class 不存在时表达式不再 returns false,它 return未定义。
我已经使用以下方法修复了测试:
fixture.debugElement.classes['my-class'].toBeFalsy()
恐怕还有其他事情无法保持沉默。
检查 Angular 文档,classes 应该只是 return 一个布尔值:
classes: {
[key: string]: boolean;
}
有没有classes
会return未定义的情况?
正如 Ivy 文档所说:
DebugElement.classes returns undefined for classes that were added and then subsequently removed (previously, classes added and later removed would have a value of false).
https://angular.io/guide/ivy-compatibility
(我遇到了完全相同的问题,它也破坏了我的一打单元测试)