使用Jest模拟请求报头模块

ALB*_*LBI 7 javascript request-headers jestjs fetch-api es6-modules

function createRequest(method) {
     const init = {
         method,
         headers: new Headers({.....}),
     };

    return new Request(url, init); }
Run Code Online (Sandbox Code Playgroud)

我在上面的代码(https://davidwalsh.name/fetch)中使用Request标头(带有Fetch )

但是,在使用Jest编写单元测试用例时,它给了我这个错误:ReferenceError:Headers未定义

我是否需要模拟这些标准模块?如何在单元测试用例中导入标题

小智 5

我说是的,在测试环境中嘲笑标绝对是一个选择。在我的特定情况下,我只是像这样嘲笑它:

global.Headers = ()=>{}
Run Code Online (Sandbox Code Playgroud)

如果您要根据fetch返回的响应来测试您的代码是否运行正常,这将很好地工作。如果还需要检查是否发送了正确的标头,则可能需要一种更复杂的模拟,并且/或者可能需要一种用于网络方法的专用测试套件。