Cypress:清除JSON响应中的特定键

2022-03-13 00:00:00 javascript cypress

我想在Cypress中删除以下响应。特别是存根密钥ds_version,它可能具有值0、1或2。每个值将在UI上显示不同的元素。

fixtures/user.json

{
"email": "test@test.com",
"firstName": "Test",
"lastName": "Test",
"ds_version": 0, --> switch this value to 0, 1, 2 for different test scenarios
"country": "Indonesia",
...
}

我通过提供整个JSON作为cy.route()参数实现了这一点,如下所示:

cy.server();
cy.route('GET', '/users/current', 'fixture:user.json').as('getUsersCurrent');

似乎如果我想测试ds_version=1ds_version=2,我需要提供不同的JSON并更改值。有没有办法在json的睡觉保持不变的情况下提供不同的ds_version值?


解决方案

您可以使用来自Cypress:

的cy.route2()
  1. 转到cypress.json并写入"experimentalNetworkStubbing": true

  2. 在test.spec文件中写入:

    cy.route2('GET', '/users/current', (req) => {
        req.reply((res) => {
            let list = JSON.parse(res.body)
            list.ds_version = 1
            res.send(list)
        })
    })
    

相关文章