修改cypress中的fixture数据并拦截
modify fixture data in cypress and intercept it
假设我有这个 setting.json
{ data: { isDark: false } }
然后我就这样拦截了
cy.intercept("api/setting", {
fixture: `setting.json`,
})
成功了。
但是我无法为 setting.json 中的一个新 属性 或当 isDark 为真时创建一个文件。那么如何在我的测试中更改 setting.json 的 属性 值?
我试过了
cy.intercept("api/setting", (req) => {
const settingFixture = await cy.fixture('setting.json')
req.continue((res) => {
res.send(settingFixture.map((object)=>({...object, isDark: true}))
})
cy.visit('some where')
})
但是没用。
根据有关 fixture 命令 (https://docs.cypress.io/api/commands/fixture#Modifying-fixture-data-before-using-it) 的 Cypress 文档,
我想你可以尝试这样的事情:
cy.fixture('setting.json').then(settingFixture => {
// Update your JSON object according to your context
// ...
// Stub your response with this JSON object updated
cy.intercept("api/setting", settingFixture)
});
// Navigate to your URL
cy.visit('some where')
假设我有这个 setting.json
{ data: { isDark: false } }
然后我就这样拦截了
cy.intercept("api/setting", {
fixture: `setting.json`,
})
成功了。
但是我无法为 setting.json 中的一个新 属性 或当 isDark 为真时创建一个文件。那么如何在我的测试中更改 setting.json 的 属性 值?
我试过了
cy.intercept("api/setting", (req) => {
const settingFixture = await cy.fixture('setting.json')
req.continue((res) => {
res.send(settingFixture.map((object)=>({...object, isDark: true}))
})
cy.visit('some where')
})
但是没用。
根据有关 fixture 命令 (https://docs.cypress.io/api/commands/fixture#Modifying-fixture-data-before-using-it) 的 Cypress 文档, 我想你可以尝试这样的事情:
cy.fixture('setting.json').then(settingFixture => {
// Update your JSON object according to your context
// ...
// Stub your response with this JSON object updated
cy.intercept("api/setting", settingFixture)
});
// Navigate to your URL
cy.visit('some where')