Pular para o conteúdo principal

respondOnce

Responde apenas uma vez com a substituição fornecida. Você pode chamar respondOnce múltiplas vezes consecutivas e ele começará com a resposta que você definiu por último. Se você usar apenas respondOnce e o recurso for chamado mais vezes do que um mock foi definido, ele volta ao recurso original.

Uso
mock.respondOnce(overwrites, { header, statusCode, fetchResponse })
Parâmetros
NomeTipoDetalhes
overwritesMockOverwritepayload para substituir a resposta
params
opcional
MockResponseParamsparâmetros adicionais de resposta para substituir
params.header
opcional
Objectsubstituir cabeçalhos específicos
params.statusCode
opcional
Numbersubstituir código de status da resposta
params.fetchResponse
opcional
Booleanbuscar resposta real antes de responder com dados simulados
Exemplo
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