Перейти до основного вмісту

respondOnce

Відповідає тільки один раз із заданим перевизначенням. Ви можете викликати respondOnce декілька разів підряд, і перша відповідь буде тою, яку ви визначили останньою. Якщо ви використовуєте тільки respondOnce і ресурс викликається більше разів, ніж було визначено мок, він повертається до оригінального ресурсу.

Використання
mock.respondOnce(overwrites, { header, statusCode, fetchResponse })
Параметри
НазваТипДеталі
overwritesMockOverwriteкорисне навантаження для перевизначення відповіді
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
})

Welcome! How can I help?

WebdriverIO AI Copilot