理解 Cypress 断言
Cypress 有一系列通用的断言,可以应用于浏览器上的任何元素。断言是检查点,用于确认自动化测试用例的测试步骤是通过还是失败。因此,它检查被测应用程序的预期状态。
Cypress 整合了 Chai、JQuery 和 Sinon 库用于断言。一些断言与元素及其父命令相关联,不能用作独立命令。例如,should()。
但是,也有一些断言可以直接作用于元素,而不依赖于其他命令。例如,expect()。尽管 Cypress 提供了各种断言,但在某些情况下,Cypress 会自动使用内置断言,而无需显式使用它们。
这些被称为默认断言。其中一些列在下面:
cy.visit() - 等待页面显示文本或 HTML,状态码为 200。
cy.request() - 等待远程服务器出现并给出响应。
cy.contains() - 等待 DOM 中出现包含指定内容的元素。
cy.get() - 等待 DOM 中出现该元素。
.find() - 等待 DOM 中出现该元素。
.type() - 等待元素处于可输入状态。
.click() - 等待元素处于可点击状态。
.its() - 等待元素在当前主题上查找属性。
一些非常常见的断言列在下面:
长度 - 验证先前链式命令返回的元素数量。
cy.get('.product').should('have.length',1);
值 - 验证元素是否具有特定值。
cy.get('.input-txt').should('have.value', 'Tutorialspoint');
类 - 验证元素是否包含或不包含指定的类。
cy.get('#tutor').find('a').should('have.class', 'enabled');
文本内容 - 验证元素是否具有特定文本。
cy.get('.input-txt').parent('div').should('contain', 'Tutorialspoint');
可见性 - 验证元素是否可见。
cy.get('submit').should('be.visible');
存在性 - 验证元素是否存在于 DOM 中。
cy.get('#gsc-id').should('not.exist');
CSS - 验证元素的 CSS 属性。
cy.get('.text-area').should('have.css', 'text-highlight');
示例
包含断言的代码实现。
// test suite describe('Tutorialspoint Test', function () { // test case it('Test Case1', function (){ // test step to launch a URL cy.visit("https://tutorialspoint.com/videotutorials/index.php"); // enter test in the edit box cy.get("#search-strings").type("Java"); // wait for some time cy.wait(3000); // assertion to validate the number of search results cy.get('.clsHeadQuestion'). should('have.length',19); }); });
广告