我想去掉Jest测试代码中的全局变量,特别是describe
、it
和expect
:
describe('Welcome (Snapshot)', () => {
it('Welcome renders hello world', () => {
// ...
});
});
所以我试着补充:
import { describe, it } from 'jest';
以及
import jest from 'jest';
jest.describe('Welcome (Snapshot)', () => {
jest.it('Welcome renders hello world', () => {
// ...
});
});
以及其他的变化,但都不起作用。
我怎样才能让我的Jest测试代码在没有全局变量的情况下工作呢?
4条答案
按热度按时间9cbw7uwe1#
请尝试下面的代码:
如果您喜欢显式导入,可以从“@jest/globals”导入{describe,expect,test}。
源代码https://jestjs.io/docs/en/api
bvuwiixz2#
最简单的解决方案是将
jest: true
添加到ESLint中的env
配置,如下所示:aemubtdh3#
当我意识到Jest在Node.js中运行时,它意识到我可以这样做:
它并不完美,但更近了一步...现在我不再需要用全局变量配置我的linter了。
a64a0gku4#
同样,我也不喜欢使用或依赖全局变量,在不同的项目中复制/粘贴了各种变通方法之后,我决定创建
jest-without-globals
作为一个 * 非常 * 小的 Package 器,以支持导入Jest的特性。根据 * 用法 * 文档,可以直接用途:
Jest's API以及
jest
和expect
中可用的所有函数都可以从jest-without-globals
导入。使用
jest-without-globals
,我不再需要复制/粘贴变通方案,也不需要配置ESLint的jest
环境之类的设置,它只是作为一个简单的导入工作。它也是用TypeScript编写的,所以你可以直接输入,而且它经过了全面的测试,以确保它能正常工作。