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
Nombre | Tipo | Detalles |
---|---|---|
overwrites | MockOverwrite | carga útil para sobrescribir la respuesta |
params opcional | MockResponseParams | parámetros de respuesta adicionales para sobrescribir |
params.header opcional | Object | sobrescribir encabezados específicos |
params.statusCode opcional | Number | sobrescribir el código de estado de la respuesta |
params.fetchResponse opcional | Boolean | obtener 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
})