使用querySelectorAll检查是否有节点包含期望值

时间:2018-08-06 00:53:56

标签: angular jasmine karma-jasmine

我正在使用Karma / Jasmine测试Angular页面上的ul是否包含所需的文本。由于它是ul,所以我不关心顺序。现在,我似乎需要指定要检查的querySelectorAll中结果的哪个节点,但这很重要。更脆的测试。有没有一种方法可以检查结果中的任何节点是否符合我的期望。

我有什么

expect(compiled.querySelectorAll('div.layer-switcher li.layer label')[0].textContent).toContain('Rivers');

我想要的东西

expect(compiled.querySelectorAll('div.layer-switcher li.layer label').textContents).toContain('Rivers');

我不想要的东西

A manual loop through all results and if we fall out the bottom of the loop without finding it then fail test

1 个答案:

答案 0 :(得分:0)

在这种情况下,您可以检查父ul元素而不是li元素的内容。

例如:

expect(compiled.querySelectorAll('div.layer-switcher ul').textContent).toContain('Rivers');