測試討論 #288
-
嗨嗨,想跟大家討論一下這樣的情況會怎麼 mock 資料。這裡我是用 "axios-mock-adapter" 但我猜其他 mock library 應該也都差不多 當我們進入頁面時,在 rangepicker 會帶入今天的時間與上週的時間: 然後 call api,api 回來的內容會有在這段時間區間內更新的資料,ex: payload: [
{
id: "7b95747e-6da2-4926-835c-ad76da650723",
reportDate: "2022-10-24",
fileName: null,
updateTime: null,
updateUserName: null,
updateUserEmplId: null,
hasReport: false,
fileId: null,
uploadBlobId: null,
uploadBlobName: null
}
] 我自己在處理 api 時,是這麼寫,結果發現,嘿嘿,根本無法成功,因為他跟我們實際打的 api 不一樣,這裡的 queryString 是動態產生的壓根不是 "2022-10-18T16:00:00.111Z" & "2022-10-26T15:59:59.111Z" mock
.onGet("/v1/etdControlFile/search", {
params: {
rStart: "2022-10-18T16:00:00.111Z",
rEnd: "2022-10-26T15:59:59.111Z"
}
})
.reply(
200,
{
code: 0,
msg: "",
payload: [ 省略 ]
}
) 改成這樣,他就會吃我 index.js 裡面 call api 帶入的那些參數
可是如此一來,我 response 部分的值就會失真。 這裡有幾個疑惑想跟大家討論
|
Beta Was this translation helpful? Give feedback.
Replies: 5 comments 1 reply
-
有點看不懂你的提問, 第二,
這段其實有點難懂, |
Beta Was this translation helpful? Give feedback.
-
同樓上,要問一下你最後的目的到底是什麼,我先猜是測試好了 如果是測試的話,那 mock 完的 response 都是固定的,沒什麼問題 |
Beta Was this translation helpful? Give feedback.
-
目的是要寫前端的測試。 情境長這樣: 我打算驗證以下事項
因為每次進來的時間都不一樣, 但 mock 完後的 response 都是固定的,所以這邊會不知道怎麼達到我想驗證的 1 & 2 好像只能測試,當我成功進入這個頁面,是否有呼叫該 api 這樣 有點抽象,分享一下代碼:
|
Beta Was this translation helpful? Give feedback.
-
根據你想測的東西,我來寫的話大概會是:
第三點應該可以透過 mock fetch 或是你用的其他 library 來拿到參數 |
Beta Was this translation helpful? Give feedback.
-
感謝老師 與 cws329 大大的解惑 ! 非常感謝 > < 測試不寫,手動測試測到哭出來~ 謝謝大家的協助與幫忙 |
Beta Was this translation helpful? Give feedback.
根據你想測的東西,我來寫的話大概會是:
new Date()
之類的東西,讓當前時間變成你指定的內容,就會好做很多,如果沒辦法的話,就把範圍縮小,測說 call API 的指定參數的 day 是不是你預期中的 day 就好第三點應該可以透過 mock fetch 或是你用的其他 library 來拿到參數