Angular9 debugElement.classes ['my-class'] теперь возвращает неопределенное значение - PullRequest
2 голосов
/ 04 марта 2020

Я обновляю репо, который использовал 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 вернет неопределенное?

1 Ответ

0 голосов
/ 08 апреля 2020

Как сказано в документации Ivy:

DebugElement.classes возвращает неопределенное значение для классов, которые были добавлены, а затем удалены (ранее добавленные и удаленные классы имели бы значение false).

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

(у меня возникла точно такая же проблема, и она также сломала дюжину моих юнит-тестов)

...