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
Nom | Type | Détails |
---|---|---|
overwrites | MockOverwrite | charge utile pour remplacer la réponse |
params optionnel | MockResponseParams | paramètres de réponse supplémentaires à remplacer |
params.header optionnel | Object | remplacer des en-têtes spécifiques |
params.statusCode optionnel | Number | remplacer le code d'état de la réponse |
params.fetchResponse optionnel | Boolean | ré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
})