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);
        });
  • 相关阅读:
    css之overflow注意事项,分析效果没有实现的原因及解决
    Leetcode- 299. Bulls and Cows
    Leetcode-234. Palindrome Linked List
    Leetcode-228 Summary Ranges
    Leetcode-190. Reverse Bits
    盒子模型的理解
    css各类伪元素总结以及清除浮动方法总结
    Leetcode-231. Power of Two
    Uncaught TypeError: __WEBPACK_IMPORTED_MODULE_0_vue__.default.user is not a
    git commit -m ''后报eslint错误
  • 原文地址:https://www.cnblogs.com/Answer1215/p/9090705.html
Copyright © 2011-2022 走看看