我想在我的开玩笑测试代码中摆脱全局变量。具体为describe
,it
和expect
describe('Welcome (Snapshot)', () => {
it('Welcome renders hello world', () => {
...
});
});
所以我尝试添加
import {describe,it} from 'jest';
和
import jest from 'jest';
jest.describe( ...
jest.it( ...
和其他变化..
但没有运气。
我应该如何运作?
答案 0 :(得分:16)
最简单的解决方法是将jest: true
添加到eslint中的env
配置中,如下所示:
"env": {
"browser": true,
"node": true,
"jasmine": true,
"jest": true,
"es6": true
},
答案 1 :(得分:10)
在我意识到jest在节点中运行后,它意识到我可以这样做:
let { describe, it } = global;
不完美,但又向前迈进了一步......现在我不再需要用全局变量配置我的linter了。
答案 2 :(得分:2)
我同样不喜欢使用或依赖全局变量,并且在不同项目中复制/粘贴各种变通办法之后,我决定创建https://www.boost.org/doc/libs/1_60_0/more/getting_started/windows.html作为很多小包装程序来支持导入笑话的功能。
jest-without-globals
,使用起来很简单:
import { describe, it, expect } from 'jest-without-globals' describe('describe should create a section', () => { it('it should checkmark', () => { expect('').toBe('') }) })
Per the Usage docs中的所有可用功能以及
jest
和expect
都可以从jest-without-globals
导入。
使用jest-without-globals
,我不再需要复制/粘贴变通办法,也不需要配置ESLint的jest
环境之类的设置,它只是一个简单的导入。
它也是用TypeScript编写的,因此您可以直接输入内容,并且已经过全面测试以确保其正常工作。
答案 3 :(得分:1)
尝试以下代码:
import {describe, expect, it } from '@jest/globals'
如果您喜欢显式导入,则可以从“ @ jest / globals”导入{描述,期望,测试}。