如何模拟标题?

问题描述 投票:0回答:1

我必须发送一些标头,并且我需要模拟它们。做

globals.Headers
似乎不起作用。

我的问题出现了几个问题:

  1. 你会如何嘲笑全局
    Headers
    类?
  2. 您可以将全局模拟放入
    __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
node.js typescript jestjs fetch-api ts-jest
1个回答
0
投票

@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);
...

我仍然很想知道手动模拟部分,但至少这可以解除我的障碍。

© www.soinside.com 2019 - 2024. All rights reserved.