Saltar al contenido principal

respondOnce

Responde solo una vez con la sobrescritura dada. Puedes llamar a respondOnce varias veces consecutivas y comenzará con la respuesta que definiste en último lugar. Si solo usas respondOnce y el recurso se llama más veces de las que se ha definido un mock, entonces vuelve al recurso original.

Uso
mock.respondOnce(overwrites, { header, statusCode, fetchResponse })
Parámetros
NombreTipoDetalles
overwritesMockOverwritecarga útil para sobrescribir la respuesta
params
opcional
MockResponseParamsparámetros de respuesta adicionales para sobrescribir
params.header
opcional
Objectsobrescribir encabezados específicos
params.statusCode
opcional
Numbersobrescribir el código de estado de la respuesta
params.fetchResponse
opcional
Booleanobtener la respuesta real antes de responder con datos simulados
Ejemplo
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