我有一个测试,用于检查ngIf是否删除了部分DOM元素。当我使用fixture.debugElement.query(By.css(".button-area"))
检查DOM时,result
是null
或DOM元素。
如果result
为null
,则以下测试正常。但是,如果测试result
包含一个元素,它就不会完全失败,它会冻结浏览器。
测试如下:
var result = fixture.debugElement.query(By.css(".button-area"))
expect(result).toBe(null)
我还尝试了expect(result).toEqual(null)
和.toBeFalsy()
,结果相同。
测试DOM元素是否已被正确删除的正确方法是什么?
更新 1/23/2017
我发现这个问题是由返回的元素指定的:
fixture.debugElement.query(By.css(".button-area"))
这可能是带有角度2或茉莉花的错误。如果我使用document.getElementByClassName("button-area")
这不是问题,测试工作正常。
答案 0 :(得分:5)
由于这似乎是Jasmine或Angular的一个错误,如果您处于绑定中,这是一个快速的解决方法:
var result = fixture.debugElement.query(By.css(".button-area"))
expect(result === null).toBeTruthy()
当问题得到解决时,您应该在自己的代码中修复此问题。