感谢TesterDick。我把他对以下的回答结合起来
如何截取整个请求体并将其与fixture进行比较?
我试过了:
it('Check if Frontend requestbody is the correct', () => {
cy.intercept('GET', '**/api/assessmenttestreference').as('ItemMove')
cy.wait('@ItemMove').its('request.body')
.to.equal({fixture:'MovedItemStructure.json'})
});
对于这个目标,有一个有效的或替代的解决方案吗?
使用routeHandler函数,该函数允许您访问请求的所有属性。
cy.fixture('MovedItemStructure.json').then(fixture => {
cy.intercept('GET', '**/api/assessmenttestreference', (req) => {
expect(req.body).to.deep.eq(fixture)
})
.as('ItemMove')
})
如果您想比较响应正文,您可以嵌套另一个回调
cy.fixture('MovedItemStructure.json').then(fixture => {
cy.intercept('GET', '**/api/assessmenttestreference', (req) => {
req.continue((res) => {
expect(res.body).to.deep.eq(fixture)
})
})
.as('ItemMove')
})
要对照夹具进行检查,必须使用deep.equal
。
const movedItemStructure = require('/pathToFixtures/MovedItemStructure.json')
it('Check if Frontend requestbody is the correct', () => {
cy.intercept('GET', '**/api/assessmenttestreference').as('ItemMove')
// action to trigger request
cy.wait('@ItemMove').its('request.body')
.should('deep.equal', movedItemStructure)
});
cy.fixture('MovedItemStructure.json').then(fixture => {
cy.intercept('PUT', '**/api/assessmenttest/*', (req) => {
expect(req.body).to.deep.eq(fixture)
req.reply({ fixture: 'MovedItemStructure.json' })
}).as('ItemMove')
})