To load a fixture, use the cy.fixture()
command.
cy.server()
cy
.fixture('example.json').as('comment')
.route(/comments/, '@comment').as('getComment')
.get('.fixture-btn').click()
.wait('@getComment').its('responseBody')
.should('have.property', 'name')
.and('include', 'Using fixtures to represent data')
// you can also just write the fixture in the route
cy
.route(/comments/, 'fixture:example.json').as('getComment')
.get('.fixture-btn').click()
.wait('@getComment').its('responseBody')
.should('have.property', 'name')
.and('include', 'Using fixtures to represent data')
// or write fx to represent fixture
// by default it assumes it's .json
cy
.route(/comments/, 'fx:example').as('getComment')
.get('.fixture-btn').click()
.wait('@getComment').its('responseBody')
.should('have.property', 'name')
.and('include', 'Using fixtures to represent data')
To read a file's content, use the cy.readFile()
command.
cy
.readFile("app/commands/actions.html")
.then(function (html) {
expect(html).to.include('<!DOCTYPE html>')
})
To write to a file with the specified contents, use the cy.writeFile()
command.
cy
.request('https://jsonplaceholder.typicode.com/users').then(function(response){
cy.writeFile('cypress/fixtures/users.json', response.body)
})
.fixture('users').then(function(users){
expect(users[0].name).to.exist
})