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);
        });
  • 相关阅读:
    MYSQL视图的学习笔记
    MYSQL常用操作函数的封装
    table表格边框样式
    用于防SQL注入的几个函数
    Html中版权符号的字体选择问题(如何让版权符号更美观)
    拿出“请勿打扰”的态度来
    editplus批量删除html代码空行
    解决&nbsp在IE与firefox宽度不一致的问题
    解决IE6下DIV无法实现1px高度问题
    处理落后员工
  • 原文地址:https://www.cnblogs.com/Answer1215/p/9090705.html
Copyright © 2011-2022 走看看