zoukankan      html  css  js  c++  java
  • [Cypress] Create a Single Custom Cypress Command from Multiple Commands

    Cypress provides a straightforward API that allows you to define custom commands. In this lesson, we’ll take a series of Cypress commands and wrap them up in a single custom command so we can easily repeat these steps in multiple specs.

    We have this partten in the code:

        it('should have four initial todos and waiting loaded', function () {
            cy.server(); // open server
            cy.route('GET', '/api/todos', 'fixture:todos') // tell the endpoint, give fixture as data
                .as('loadingTodos'); // mark it as loading
            cy.visit('/'); // visit the page
            cy.wait('@loadingTodos'); // wait until the loading is finished
    
            cy.get('.todo-list > li')
                .should('have.length', 4);
        });

    Those code which has comments actually can be reused in many places.

    Cypress enalbes us to create custom commands to use, so that we can reuse part of code everytime.

    Open cypress/support/commands.js, add following code:

    Cypress.Commands.add('seedAndVisit', (seedData = 'fixture:todos') => { // using 'fixture:todos' if seedData is undefined
      cy.server()
      cy.route('GET', '/api/todos', seedData).as('load')
    
      cy.visit('/')
    
      cy.wait('@load')
    });

    To use the commands:

        it('should use Cypress commands to simplify the code: using default value', function () {
            cy.seedAndVisit();
            cy.get('.todo-list > li')
                .should('have.length', 4);
        });
    
        it('should use Cypress commands to simplify the code: using defined value', function () {
            cy.seedAndVisit([]);
            cy.get('.todo-list > li')
                .should('have.length', 0);
        });
  • 相关阅读:
    PHP温故知新(一)
    DNS 与 CoreDNS
    如何实现服务端Moc
    nginx用logrotate工具对日志进行分割备份
    postman 关联参数值
    python3.7 allure-commandline-2.13.1.zip 下载地址
    jmeter JDBC Request
    JMeterQuestions english
    python 接口自动化 依赖包源 可以选豆瓣源
    python 3 升级pip不成功 解决方法
  • 原文地址:https://www.cnblogs.com/Answer1215/p/9090750.html
Copyright © 2011-2022 走看看