Jest对ts做单元测试的时候如何使用fetch获取数据?

我使用Jest做单元测试:
我们知道nodejs环境没有fetch方法,所以我安装了 node-fetch 库。
但是
test001.spec.ts中使用fetch的时候

import fetch from 'node-fetch'; 


describe('custom', () => {...}

但是报错:

..../my-app/node_modules/node-fetch/src/index.js:9
    import http from 'node:http';
    ^^^^^^

    SyntaxError: Cannot use import statement outside a module
阅读 2.1k
1 个回答

跟 fetch 没关系,是因为 jest 对 ESM 还没有完全支持。

目前的话需要你显式地开启这个特性:

// package.json
{
   "script": {
       "test": "NODE_OPTIONS=--experimental-vm-modules jest"
   }
}
https://jestjs.io/docs/ecmascript-modules

P.S. 需要 Node.js v13.2.0+

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题
logo
Microsoft
子站问答
访问
宣传栏