respondOnce
Svara endast en gång med given överskrivning. Du kan anropa respondOnce
flera
gånger i följd och den kommer att börja med det svar du definierade senast. Om du
endast använder respondOnce
och resursen anropas fler gånger än vad en mock har
definierats för, återgår den till den ursprungliga resursen.
Användning
mock.respondOnce(overwrites, { header, statusCode, fetchResponse })
Parametrar
Namn | Typ | Detaljer |
---|---|---|
overwrites | MockOverwrite | payload för att skriva över svaret |
params valfritt | MockResponseParams | ytterligare svarsparametrar att skriva över |
params.header valfritt | Object | skriv över specifika headers |
params.statusCode valfritt | Number | skriv över svarsstatuskod |
params.fetchResponse valfritt | Boolean | hämta verkligt svar innan du svarar med mockad data |
Exempel
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
})