[英]How to use Typescript, Jest and Axios to mock two different requests in the same unit test?
所以我有function A
和function B
function A
做一個 GET 請求
function B
做一個 GET 請求
function B
在function A
里面
我想測試function A
,為此我需要模擬兩個 GET 請求(每個函數一個模擬)到具有不同響應的不同端點。 如何使用Jest
和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,
});
});
一個不錯的選擇可能是使用mockResolvedValueOnce(...)
方法。
這解決了我的問題:
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'))
}
})
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.