Aller au contenu principal

respondOnce

Répond une seule fois avec la modification donnée. Vous pouvez appeler respondOnce plusieurs fois consécutives et cela commencera par la réponse que vous avez définie en dernier. Si vous utilisez uniquement respondOnce et que la ressource est appelée plus de fois qu'un mock a été défini, elle revient par défaut à la ressource originale.

Utilisation
mock.respondOnce(overwrites, { header, statusCode, fetchResponse })
Paramètres
NomTypeDétails
overwritesMockOverwritecharge utile pour remplacer la réponse
params
optionnel
MockResponseParamsparamètres de réponse supplémentaires à remplacer
params.header
optionnel
Objectremplacer des en-têtes spécifiques
params.statusCode
optionnel
Numberremplacer le code d'état de la réponse
params.fetchResponse
optionnel
Booleanrécupérer la réponse réelle avant de répondre avec des données simulées
Exemple
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