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 |
paramsoptionnel | MockResponseParams | paramètres de réponse supplémentaires à remplacer |
params.headeroptionnel | Object | remplacer des en-têtes spécifiques |
params.statusCodeoptionnel | Number | remplacer le code d'état de la réponse |
params.fetchResponseoptionnel | 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
})