پاسخدادن یکباره
فقط یک بار با بازنویسی تعیینشده پاسخ میدهد. شما میتوانید 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()) // خروجی [ '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()) // نمایش پاسخ واقعی منبع
})