پرش به محتوای اصلی

پاسخ‌دادن یکباره

فقط یک بار با بازنویسی تعیین‌شده پاسخ می‌دهد. شما می‌توانید 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()) // خروجی [ '3', '2', '1' ]
await browser.url('https://todobackend.com/client/index.html?https://todo-backend-express-knex.herokuapp.com/')
console.log(await getToDos()) // خروجی [ '2', '1' ]
await browser.url('https://todobackend.com/client/index.html?https://todo-backend-express-knex.herokuapp.com/')
console.log(await getToDos()) // خروجی [ '1' ]
await browser.url('https://todobackend.com/client/index.html?https://todo-backend-express-knex.herokuapp.com/')
console.log(await getToDos()) // نمایش پاسخ واقعی منبع
})

Welcome! How can I help?

WebdriverIO AI Copilot