簡體   English   中英

如何使用 Typescript、Jest 和 Axios 在同一個單元測試中模擬兩個不同的請求?

[英]How to use Typescript, Jest and Axios to mock two different requests in the same unit test?

所以我有function Afunction B

function A做一個 GET 請求

function B做一個 GET 請求

function Bfunction A里面

我想測試function A ,為此我需要模擬兩個 GET 請求(每個函數一個模擬)到具有不同響應的不同端點。 如何使用JestAxios做到這一點?

我不知道如何模擬第二個電話:

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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM