У меня есть тест, который проверяет, был ли элемент детали DOM удален ngIf. Когда я проверяю DOM, используя: fixture.debugElement.query(By.css(".button-area"))
, result
либо null
, либо элемент DOM.Тест зависает, когда ожидает (результат) .toBe (null). (Угловой 2, Жасмин)
Если result
- null
, то следующий тест работает нормально. Но, если в тесте result
содержится элемент, он не просто терпит неудачу, он замерзает браузер.
Тест выглядит следующим образом:
var result = fixture.debugElement.query(By.css(".button-area"))
expect(result).toBe(null)
Я также попытался expect(result).toEqual(null)
и .toBeFalsy()
, которые имеют один и тот же результат.
Каков правильный способ проверки правильности удаления элемента DOM?
UPDATE 1/23/2017
я выяснил этот вопрос является для, специфического элемента, возвращенный:
fixture.debugElement.query(By.css(".button-area"))
Это может быть ошибкой с угловыми 2 или жасмин. Если я использую document.getElementByClassName("button-area")
, это не проблема, и тест работает нормально.
Проверьте это объяснение по проблеме: https://medium.com/@martatatiana/poor-detective-angular2-browser-crash-and-debugelement-f0a651dbf33 Похоже, что в основном ошибка возникает при обходе debugElement, поскольку она имеет огромное дерево зависимостей. Поэтому избегайте использования огромных объектов в аргументе функции ожидания. – robertohuertasm