Vai al contenuto principale

respondOnce

Rispondi solo una volta con la sovrascrittura specificata. Puoi chiamare respondOnce più volte consecutive e inizierà con la risposta che hai definito per ultima. Se usi solo respondOnce e la risorsa viene chiamata più volte di quante ne sia stato definito un mock, si ritorna alla risorsa originale.

Utilizzo
mock.respondOnce(overwrites, { header, statusCode, fetchResponse })
Parametri
NomeTipoDettagli
overwritesMockOverwritepayload per sovrascrivere la risposta
params
opzionale
MockResponseParamsparametri di risposta aggiuntivi da sovrascrivere
params.header
opzionale
Objectsovrascrive header specifici
params.statusCode
opzionale
Numbersovrascrive il codice di stato della risposta
params.fetchResponse
opzionale
Booleanrecupera la risposta reale prima di rispondere con i dati simulati
Esempio
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