0

我有一个 fetch 调用和单元测试,用于 fetch all。它正在工作,突然我看到 API 单元测试的单元测试用例失败了。下面是我的代码

响应 fetch 调用

export const getUser = async () => {
  try {
    const resp = await fetch(url);
    return resp.json();
  } catch (err) {
    throw new Error(err);
  }
};

单元测试用例

const mockResp = {};
const mockJsonPromise = Promise.resolve(mockResp);
const mockFetchPromise = Promise.resolve({
  json: () => mockJsonPromise,
});

jest.spyOn(global, "fetch").mockImplementation(() => mockFetchPromise);

test("test getUser", (done) => {
  expect(getUser()).toEqual(mockFetchPromise);
  global.fetch.mockClear();
  done();
});

错误 - UnhandledPromiseRejectionWarning:未处理的承诺拒绝。此错误源于在没有 catch 块的情况下抛出异步函数内部,或拒绝未使用 .catch() 处理的承诺。承诺被拒绝,原因是“错误:TypeError:无法读取未定义的属性(读取'json')”

4

0 回答 0