zoukankan      html  css  js  c++  java
  • [Cypress] Load Data from Test Fixtures in Cypress

    When creating integration tests with Cypress, we’ll often want to stub network requests that respond with large datasets. All of this mock data can lead to test code that is hard to read. In this lesson, we’ll see how to use fixtures to keep sample data in files and easily load it on demand in your tests.

    Now we hard code the mock data into the test, somehow, we want those data can be reuseable for other cases.

    So we need to change the following implementation by using fixture:

        it('should have four initial todos', function () {
            cy.server();
            cy.route('GET', '/api/todos', [
                {id: 1, name: 'one', isComplete: false},
                {id: 2, name: 'two', isComplete: false},
                {id: 3, name: 'three', isComplete: false},
                {id: 4, name: 'four', isComplete: false}
            ]);
    
            cy.visit('/');
    
            cy.get('.todo-list > li')
                .should('have.length', 4);
        });

    Add cypress/fixtures/todos.json:

    [
      { "id": 1, "name": "One", "isComplete": false },
      { "id": 2, "name": "Two", "isComplete": false },
      { "id": 3, "name": "Three", "isComplete": false },
      { "id": 4, "name": "Four", "isComplete": false }
    ]

     

    Then change our code to:

        it('should have four initial todos', function () {
            cy.server();
            cy.fixture('todos')
                .then(todos => {
                    cy.route('GET', '/api/todos', todos);
                });
    
            cy.visit('/');
    
            cy.get('.todo-list > li')
                .should('have.length', 4);
        });

    There is a simple way provided by Cypress:

        it('should have four initial todos', function () {
            cy.server();
            /*
            cy.fixture('todos')
                .then(todos => {
                    cy.route('GET', '/api/todos', todos);
                });
                */
            cy.route('GET', '/api/todos', 'fixture:todos');
            cy.visit('/');
    
            cy.get('.todo-list > li')
                .should('have.length', 4);
        });
  • 相关阅读:
    Deploy Django in Windows
    Django开发环境配置
    springmvc源码解读
    分布式事务中常见的三种解决方案
    分布式锁总结
    JAVA代码优化
    Mysql(mysql总结)
    树(数据结构二)
    集合(Java总结一)
    centos7.7下docker与k8s安装(DevOps三)
  • 原文地址:https://www.cnblogs.com/Answer1215/p/9090705.html
Copyright © 2011-2022 走看看