Перейти к основному содержимому

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