Hoppa till huvudinnehåll

respondOnce

Svara endast en gång med given överskrivning. Du kan anropa respondOnce flera gånger i följd och den kommer att börja med det svar du definierade senast. Om du endast använder respondOnce och resursen anropas fler gånger än vad en mock har definierats för, återgår den till den ursprungliga resursen.

Användning
mock.respondOnce(overwrites, { header, statusCode, fetchResponse })
Parametrar
NamnTypDetaljer
overwritesMockOverwritepayload för att skriva över svaret
params
valfritt
MockResponseParamsytterligare svarsparametrar att skriva över
params.header
valfritt
Objectskriv över specifika headers
params.statusCode
valfritt
Numberskriv över svarsstatuskod
params.fetchResponse
valfritt
Booleanhämta verkligt svar innan du svarar med mockad data
Exempel
respondOnce.js
async function getToDos () {
await $('#todo-list li').waitForExist()
return $$('#todo-list li').map(el => el.getText())
}

it('should demonstrate the respondOnce command', async () => {
const mock = await browser.mock('https://todo-backend-express-knex.herokuapp.com/', {
method: 'get'
})

mock.respondOnce([{
title: '3'
}, {
title: '2'
}, {
title: '1'
}])

mock.respondOnce([{
title: '2'
}, {
title: '1'
}])

mock.respondOnce([{
title: '1'
}])

await browser.url('https://todobackend.com/client/index.html?https://todo-backend-express-knex.herokuapp.com/')
console.log(await getToDos()) // outputs [ '3', '2', '1' ]
await browser.url('https://todobackend.com/client/index.html?https://todo-backend-express-knex.herokuapp.com/')
console.log(await getToDos()) // outputs [ '2', '1' ]
await browser.url('https://todobackend.com/client/index.html?https://todo-backend-express-knex.herokuapp.com/')
console.log(await getToDos()) // outputs [ '1' ]
await browser.url('https://todobackend.com/client/index.html?https://todo-backend-express-knex.herokuapp.com/')
console.log(await getToDos()) // outputs actual resource response
})

Welcome! How can I help?

WebdriverIO AI Copilot