Day 9.
Moxios https://github.com/axios/moxios
前端人員痛苦指數超高的一道門檻,處理非同步事件
光是聽名字就想放棄的朋友
你沒有朋友
老實點,去把他練好
這可能是今後唯一會給你 response 的東西了
嗚嗚嗚嗚嗚
update () {
this.question.title = this.form.title;
this.question.body = this.form.body;
// 就是這邊
axios.post('/questions/1', this.form)
.then(({data}) => {
this.feedback = true;
});
this.editing = false;
}
想這樣的東西,要怎麼測試?
莫非真的要發個 request 等 server 回傳?
當然不會,沒有朋友我們可以幻想一個
沒有 server 我們可以假造一個
moxios.stubRequest(/questions\/\d+/, {
status: 200,
response: {
// title: 'Changed title',
// body: 'Changed body'
}
});
像這樣
moxios 會攔截 axios 所發出的 request, 然後判斷它要找的 url 而去回覆對應的結果。
說攔截好像有點難懂,實作大概就像這樣吧
axios.request = function(url) {
return moxios.pattern.match(url);
}
唯一要注意的是在使用之前
要記得幫 moxios 安裝和刪除就好
beforeEach (() => {
moxios.install();
});
afterEach(() => {
moxios.uninstall();
});