gpt4 book ai didi

angular - 当 expect(result).toBe(null) 测试失败时测试卡住。 ( Angular 2, Jasmine )

转载 作者:太空狗 更新时间:2023-10-29 17:26:08 27 4
gpt4 key购买 nike

我有一个测试来检查部分 DOM 元素是否已被 ngIf 删除。当我使用以下方法检查 DOM 时:fixture.debugElement.query(By.css(".button-area")) resultnull 或 DOM 元素。

如果resultnull,则以下测试工作正常。但是,如果测试 result 包含一个元素,它不仅会导致测试失败,还会卡住浏览器。

测试看起来像这样:

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

我也试过 expect(result).toEqual(null).toBeFalsy() 有相同的结果。

测试 DOM 元素是否已被正确删除的正确方法是什么?

更新 2017 年 1 月 23 日

我发现此问题特定于返回的元素:

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

这可能是一个带有 angular 2 或 jasmine 的错误。如果我使用 document.getElementByClassName("button-area") 这不是问题并且测试工作正常。

最佳答案

由于这似乎是 Jasmine 或 Angular 的错误,如果您处于绑定(bind)状态,这里有一个快速解决方法:

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

问题解决后,您应该会在自己的代码中修复此问题。

关于angular - 当 expect(result).toBe(null) 测试失败时测试卡住。 ( Angular 2, Jasmine ),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41811609/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com