انتقل إلى المحتوى الرئيسي

الاستجابة مرة واحدة

الاستجابة مرة واحدة فقط مع التعديل المحدد. يمكنك استدعاء 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