Automated tests .should(';exist';)断言在Cypress上是否多余? 让我们考虑一个情况,我需要断言一个元素是否存在。在cypress中有两种可能的方法: 1) cy.get('button').contains('Save') 2) cy.get('button').contains('Save').should('exist')
在这两种情况下,如果“保存”按钮不存在,测试将失败Automated tests .should(';exist';)断言在Cypress上是否多余? 让我们考虑一个情况,我需要断言一个元素是否存在。在cypress中有两种可能的方法: 1) cy.get('button').contains('Save') 2) cy.get('button').contains('Save').should('exist'),automated-tests,cypress,assertion,Automated Tests,Cypress,Assertion,在这两种情况下,如果“保存”按钮不存在,测试将失败 除了更好的代码可读性/可维护性之外,我应该在cypress测试中添加.should('exist')的原因是什么?对于断言元素是否存在的用例,它们确实是多余的 .contains()生成一个DOM元素,并根据,.should生成与输入相同的元素。当.should生成不同的元素时(正如您在文档中看到的),会出现一些例外情况,但如果使用should('exist'),它们实际上是多余的 正如您所提到的,我个人也更喜欢添加should,以提高可读性。
除了更好的代码可读性/可维护性之外,我应该在cypress测试中添加.should('exist')的原因是什么?对于断言元素是否存在的用例,它们确实是多余的
.contains()
生成一个DOM元素,并根据,.should
生成与输入相同的元素。当.should生成不同的元素时(正如您在文档中看到的),会出现一些例外情况,但如果使用should('exist')
,它们实际上是多余的
正如您所提到的,我个人也更喜欢添加should
,以提高可读性。事实上,我更喜欢.should('be.visible')
,因为下面的场景-当一个元素被隐藏或者因为一些CSS问题被推出屏幕时,从用户的角度来看它并不存在。但是
cy.get('button')。包含('Save')
-通过测试
cy.get('button')。包含('Save')。应该('exist')
-通过测试
cy.get('button')。包含('Save')。应该('be.visible')
-测试失败实际上,在v4.0发布(并合并)之前,如果您自己链接任何否定断言,您需要链接应该('exist')
断言。这是因为默认的应该('exist')
断言
肯定断言不需要,因为它们不会传递不存在的元素
也看到
下面,元素。第一项不存在,但断言通过:
description('test',()=>{
它('test',()=>{
cy.get('.first item').should('not.have.class','is selected');
});
});
但是我们真的想使用scrollIntoView
查看浏览器可见视口之外的元素吗?