我有以下用于fetch()
进行 API 调用的函数:
export async function fetchCars(dealershipId) {
return request('path/to/endpoint/' + dealershipId)
.then((response) => {
if (response.ok === false) {
return Promise.reject();
}
return response.json();
})
.then((cars) => {
return parseMyCars(cars);
});
}
我想测试调用何时失败(特别是何时return Promise.reject()
返回)。我现在有以下 Jest 测试:
(fetch as jest.Mock).mockImplementation(() =>
Promise.resolve({ ok: false })
);
const result = await fetchCars(1);
expect(request).toHaveBeenCalledWith('/path/to/endpoint/1');
expect(result).toEqual(Promise.reject());
但我Failed: undefined
在运行测试时收到一条消息。我试过使用:
(fetch as jest.Mock).mockRejectedValue(() =>
Promise.resolve({ ok: false })
);
但收到类似的Failed: [Function anonymous]
消息。
在这里测试被拒绝的承诺的正确方法是什么?