2017-01-23 3 views
3

일부 DOM 요소가 ngIf에 의해 제거되었는지 확인하는 테스트가 있습니다. fixture.debugElement.query(By.css(".button-area"))을 사용하여 DOM을 확인할 때 resultnull이거나 DOM 요소입니다.expect (result) .toBe (null)이 테스트에 실패하면 테스트가 멈 춥니 다. (각도 2, 재스민)

resultnull 인 경우 다음 테스트가 정상적으로 작동합니다. 그러나 테스트 result에 요소가 포함되어 있으면 단순히 테스트에 실패하지 않고 은 브라우저을 고정시킵니다.

시험은 다음과 같습니다 : 나는 또한 같은 결과를 expect(result).toEqual(null).toBeFalsy()을 시도

var result = fixture.debugElement.query(By.css(".button-area")) 
expect(result).toBe(null) 

.

DOM 요소가 제대로 제거되었는지 테스트하는 적절한 방법은 무엇입니까? 이것은 각 2와 버그 수 있습니다

fixture.debugElement.query(By.css(".button-area"))

: 나는이 문제를 발견 2017년 1월 23일

UPDATE에 의해 반환 된 요소을 구체적으로이다 재스민 속. document.getElementByClassName("button-area")을 사용하면 문제가되지 않으며 테스트가 정상적으로 작동합니다. 이 재스민이나 각도 버그 것으로 보인다 때문에 당신이 바인딩에있는 경우

답변

1

, 여기에 빠른 해결 방법입니다 :

var result = fixture.debugElement.query(By.css(".button-area")) 
expect(result === null).toBeTruthy() 

문제가 해결 될 때 당신은 당신의 자신의 코드에서이 문제를 해결 기대한다 .

+1

문제에 대한 설명을 확인하십시오. https://medium.com/@martatatiana/poor-detective-220-browser-crash-and-debuglement-f0a651dbf33 기본적으로 debugElement를 트래버스 할 때 오류가 발생하는 것 같습니다. 의존성의 거대한 나무가 있습니다. 따라서 함수 인수를 기대할 때 거대한 객체를 피하십시오. – robertohuertasm