理解 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);
   });
});

更新于:2020年8月5日

534 次浏览

启动您的 职业生涯

完成课程获得认证

开始学习
广告