Przejdź do głównej treści

respondOnce

Odpowiedz tylko raz z danym nadpisaniem. Możesz wywołać respondOnce wiele razy pod rząd i zacznie od odpowiedzi, którą zdefiniowałeś jako ostatnią. Jeśli używasz tylko respondOnce, a zasób jest wywoływany więcej razy niż zdefiniowano atrapy, to domyślnie wraca do oryginalnego zasobu.

Użycie
mock.respondOnce(overwrites, { header, statusCode, fetchResponse })
Parametry
NazwaTypSzczegóły
overwritesMockOverwritedane do nadpisania odpowiedzi
params
opcjonalnie
MockResponseParamsdodatkowe parametry odpowiedzi do nadpisania
params.header
opcjonalnie
Objectnadpisanie określonych nagłówków
params.statusCode
opcjonalnie
Numbernadpisanie kodu statusu odpowiedzi
params.fetchResponse
opcjonalnie
Booleanpobierz rzeczywistą odpowiedź przed odpowiedzią z atrapą danych
Przykład
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