Cypress:清除JSON响应中的特定键
我想在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=1
或ds_version=2
,我需要提供不同的JSON并更改值。有没有办法在json的睡觉保持不变的情况下提供不同的ds_version
值?
解决方案
您可以使用来自Cypress:
的cy.route2()转到
cypress.json
并写入"experimentalNetworkStubbing": true
在test.spec文件中写入:
cy.route2('GET', '/users/current', (req) => { req.reply((res) => { let list = JSON.parse(res.body) list.ds_version = 1 res.send(list) }) })
相关文章