所以我有function A
和function B
function A
做一個 GET 請求
function B
做一個 GET 請求
function B
在里面function A
我想測驗function A
,為了做到這一點,我需要模擬兩個 GET 請求(每個函式一個模擬)到具有不同回應的不同端點。我該如何使用Jest
and來做到這一點Axios
?
我不知道如何模擬第二個電話:
it("test", async () => {
mock.get.mockResolvedValue({ data: RESPONSE });
const response = await functionA(input);
expect(response).toMatchObject({ status: 1 });
expect(response.value).toMatchObject({
state: { status: "OK" },
data: RESPONSE,
});
});
uj5u.com熱心網友回復:
這解決了我的問題:
mock.get.mockImplementation((url) => {
switch (url) {
case 'URL_A':
return Promise.resolve({data: data_A})
case 'URL_B':
return Promise.resolve({data: data_B})
default:
return Promise.reject(new Error('error message'))
}
})
uj5u.com熱心網友回復:
一個很好的選擇可能是使用該mockResolvedValueOnce(...)
方法。像這樣的東西:
const DATA_A = 'a';
const DATA_B = 'b';
mock.get.mockResolvedValue('default')
.mockResolvedValueOnce(DATA_A)
.mockResolvedValueOnce(DATA_B);
轉載請註明出處,本文鏈接:https://www.uj5u.com/shujuku/504757.html
標籤:javascript 打字稿 单元测试 axios 开玩笑