我必须发送一些标头,并且我需要模拟它们。做
globals.Headers
似乎不起作用。
我的问题出现了几个问题:
Headers
类?__mocks__
文件夹中(手动模拟)吗?从如何使用 Jest 在 React-Native 中使用模拟的 fetch() 对 API 调用进行单元测试,我将其更新为执行以下操作:
//just added some typing to it.
let fetchMocked = global.fetch = jest.fn<(input: RequestInfo | URL, init?: RequestInit) => Promise<Response>>();
现在,我尝试了以下方法:
class Headers {
append = jest.fn()
}
global.Headers = Headers; // doesn't work
我也尝试过:
class Headers {
append = jest.fn()
}
Object.defineProperty(global, "Headers", Headers); // this is also invalid
@phil 解决了标题部分!谢谢!
我的打字稿或我的项目似乎有配置问题。我回去做了类似的事情
init
...
const init = {
method: 'GET',
headers: {
'X-Key': apiKey,
'X-Proxy': secret,
'X-API-Host': 'real-in.com'
}
};
const res = await fetch('https://real-in.com/mart/rates', init);
...
我仍然很想知道手动模拟部分,但至少这可以解除我的障碍。