MSW 亦能模擬 Error Response 提供 Client 端做測試。
Version
MSW 0.28.2
API Function
api/getBook.js
import axios from 'axios'
export default id => axios.get(`/book/${id}`)
使用 axios.get()
呼叫 API。
Mock Function
mock/getBook.js
export default rest.get('/book/:id', (req, res, ctx) => {
let { id } = req.params
return res(
ctx.status(400),
ctx.json({
'code': 20001,
'errMsg': `Book of ID: ${id} is N/A`,
})
)
})
第 5 行
ctx.status(400),
由 cox.status()
定義回傳 HTTP status。
第 6 行
ctx.json({
'code': 20001,
'errMsg': `Book of ID: ${id} is N/A`,
})
回傳資料依然定義在 ctx.json()
內。
Conclusion
- 回傳 error response 與正常回傳差異不大,只需改變
ctx.status()
,並在ctx.json()
回傳 data 即可