私は、DOM要素の一部がngIfによって削除されたかどうかを調べるテストをしています。 fixture.debugElement.query(By.css(".button-area"))
を使用してDOMをチェックすると、result
はnull
またはDOM要素のいずれかになります。expect(result).toBe(null)がテストに失敗した場合、テストはフリーズします。 (Angular 2、Jasmine)
がnull
の場合、次のテストはうまくいきます。しかし、テストresult
に要素が含まれている場合、単にテストに失敗しないだけで、はブラウザをフリーズします。
テストでは、次のようになります。
var result = fixture.debugElement.query(By.css(".button-area"))
expect(result).toBe(null)
私も同じ結果になりexpect(result).toEqual(null)
と.toBeFalsy()
を試してみました。
DOM要素が正しく削除されたかどうかをテストする適切な方法は何ですか?これは角2またはでバグかもしれません
fixture.debugElement.query(By.css(".button-area"))
:私はこの問題を発見した 2017年1月23日
UPDATEがで返される要素にspecifcですジャスミン。 document.getElementByClassName("button-area")
を使用しても問題はなく、テストは正常に動作します。
問題については、この説明を確認します。https://medium.com/@martatatiana/poor-detective-angular2-browser-crash-and-debugelement-f0a651dbf33 それとしてdebugElementを横断するとき、基本的にエラーが生成されるようです依存関係の巨大な木を持っています。したがって、関数の引数を期待して巨大なオブジェクトを避けてください。 – robertohuertasm