ITg*_*guy 16 automated-tests assertion cypress
让我们考虑一下我需要断言元素是否存在的情况。在 cypress 中有两种可能的方法来做到这一点:
1) cy.get('button').contains('Save')
2) cy.get('button').contains('Save').should('exist')
Run Code Online (Sandbox Code Playgroud)
在这两种情况下,如果“保存”按钮不存在,测试都会失败。
除了可能更好的代码可读性/可维护性之外,我应该将.should('exist') 添加到我的 cypress 测试中的原因是什么?
Dur*_*tko 15
对于断言元素是否存在的用例,它们确实是多余的。
.contains()
产生一个 DOM 元素,根据文档,.should
产生与作为输入给出的相同元素。当 .should 产生不同的元素时有一些例外(如您在文档中所见)但在使用的情况下should('exist')
,它们确实是多余的
正如你提到的,我个人也更喜欢添加should
以获得更好的可读性。实际上我更喜欢.should('be.visible')
因为以下场景 - 当一个元素由于某些 CSS 问题而被隐藏或被推出屏幕时,从用户的角度来看它不存在。但..
cy.get('button').contains('Save')
- 通过测试
cy.get('button').contains('Save').should('exist')
- 通过测试
cy.get('button').contains('Save').should('be.visible')
- 测试失败
归档时间: |
|
查看次数: |
8530 次 |
最近记录: |