respondOnce
Відповідає тільки один раз із заданим перевизначенням. Ви можете викликати respondOnce
декілька разів підряд, і перша відповідь буде тою, яку ви визначили останньою. Якщо ви використовуєте тільки respondOnce
і ресурс викликається більше разів, ніж було визначено мок, він повертається до оригінального ресурсу.
Використання
mock.respondOnce(overwrites, { header, statusCode, fetchResponse })
Параметри
Назва | Тип | Деталі |
---|---|---|
overwrites | MockOverwrite | корисне навантаження для перевизначення відповіді |
params необов'язково | MockResponseParams | додаткові параметри відповіді для перевизначення |
params.header необов'язково | Object | перевизначити конкретні заголовки |
params.statusCode необов'язково | Number | перевизначити код статусу відповіді |
params.fetchResponse необов'язково | Boolean | отримати реальну відповідь перед відповіддю з мок-даними |
Приклад
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
})