[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:

扫描二维码关注公众号,回复: 1029635 查看本文章
    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);
    });

猜你喜欢

转载自www.cnblogs.com/Answer1215/p/9090705.html
今日推荐