ed-*_*ter 6 dom jasmine angular-ng-if karma-jasmine angular
我有一个测试,检查部分DOM元素是否已被ngIf删除.当我使用以下方法检查DOM时:fixture.debugElement.query(By.css(".button-area"))它result是nullDOM元素或者是DOM元素.
如果result是null,那么以下测试工作正常.但是,如果测试result包含一个元素,它不会简单地通过测试,它会冻结浏览器.
测试看起来像这样:
var result = fixture.debugElement.query(By.css(".button-area"))
expect(result).toBe(null)
Run Code Online (Sandbox Code Playgroud)
我也尝试过expect(result).toEqual(null),.toBeFalsy()结果相同.
测试DOM元素是否已正确删除的正确方法是什么?
更新 1/23/2017
我发现这个问题是由返回的元素指定的:
fixture.debugElement.query(By.css(".button-area"))
这可能是角2或茉莉的错误.如果我使用document.getElementByClassName("button-area")它不是一个问题,测试工作正常.
由于这似乎是Jasmine或Angular的一个错误,如果您处于绑定状态,这里有一个快速的解决方法:
var result = fixture.debugElement.query(By.css(".button-area"))
expect(result === null).toBeTruthy()
Run Code Online (Sandbox Code Playgroud)
当问题得到解决时,您应该在自己的代码中修复此问题.