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