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);
        });
  • 相关阅读:
    只有程序员才懂这些黑色幽默!
    只有程序员才懂这些黑色幽默!
    程序员常访问的国外技术交流网站
    回归分析:非线性nlinfi
    Java设计模式(二十一):职责链模式
    Angular4——7.表单处理
    ubuntu 代理设置
    Qt 隐藏标题栏 窗口移动 鼠标事件
    Shevon's Blog
    Allenmind's Blog
  • 原文地址:https://www.cnblogs.com/Answer1215/p/9090705.html
Copyright © 2011-2022 走看看