我有一个 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')”