respondOnce
Antworte nur einmal mit der angegebenen Überschreibung. Du kannst respondOnce mehrmals
hintereinander aufrufen und es beginnt mit der Antwort, die du zuletzt definiert hast. Wenn du
nur respondOnce verwendest und die Ressource öfter aufgerufen wird als ein Mock definiert
wurde, wird auf die ursprüngliche Ressource zurückgegriffen.
Usage
mock.respondOnce(overwrites, { header, statusCode, fetchResponse })
Parameters
| Name | Type | Details |
|---|---|---|
overwrites | MockOverwrite | payload to overwrite the response |
paramsoptional | MockResponseParams | additional respond parameters to overwrite |
params.headeroptional | Object | overwrite specific headers |
params.statusCodeoptional | Number | overwrite response status code |
params.fetchResponseoptional | Boolean | fetch real response before responding with mocked data |
Example
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
})