【发布时间】:2020-08-19 13:42:19
【问题描述】:
首先我遇到了一个打字稿问题,我的模拟数据与响应类型不匹配。然后我尝试使用 Response 构造函数创建模拟数据并得到了那个错误。
我有以下代码
const HttpRequest = async function (
url: string,
options: RequestInit,
): Promise<Response> {
try {
return await fetch(url, options);
} catch (error) {
return null;
}
};
export default HttpRequest;
以下测试:
const res = new Response();
window.fetch = jest.fn(
() => new Promise((resolve) => {
return resolve(res);
})
);
describe('HttpService', () => {
it('fetchWithFeedback', async () => {
const data = await HttpRequest('/api', { method: 'GET' });
expect(data).toEqual(res);
});
});
【问题讨论】:
-
您好像忘记在问题中留下您的错误?
-
不,我得到的错误是 ReferenceError: Response is not defined
-
您测试的是哪个环境?
Response是可用的全局对象吗? -
我正在测试浏览器环境。它应该在窗口对象上可用。
-
“响应”在 jest 电子浏览器中不可用,所以你必须模拟它
标签: reactjs typescript testing jestjs