الاستجابة مرة واحدة
الاستجابة مرة واحدة فقط مع التعديل المحدد. يمكنك استدعاء respondOnce عدة مرات متتالية وسيبدأ بالاستجابة التي حددتها أخيرًا. إذا كنت تستخدم respondOnce فقط وتم استدعاء المورد أكثر من عدد المرات التي تم فيها تعريف مُحاكاة، فإنه يعود إلى المورد الأصلي.
الاستخدام
mock.respondOnce(overwrites, { header, statusCode, fetchResponse })
المعاملات
| الاسم | النوع | التفاصيل |
|---|---|---|
overwrites | MockOverwrite | بيانات لتعديل الاستجابة |
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
})