首页 > 解决方案 > 我在 Jest ReferenceError 中收到以下错误:未定义响应

问题描述

首先,我遇到了一个打字稿问题,我的模拟数据与响应类型不匹配。然后我尝试使用 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);
    });
});

标签: reactjstypescripttestingjestjs

解决方案


改变

  const changeField = (field, id, value) => {
    const newPropertyData = { ...propertyData };
    if (newPropertyData.id === id) {
      newPropertyData.field = value;
    }
  };

  const changeField = (field, id, value) => {
    if (propertyData.id === id) {
      setPropertyData({ ...propertyData, [field]: value })
    }
  };

您没有在 onChange 中更新您的状态,因此它永远无法更新仍然是“”的值。


推荐阅读