guy*_*abi 19 jestjs es6-modules
我想在我的开玩笑测试代码中摆脱全局变量.具体来说describe,it和expect
describe('Welcome (Snapshot)', () => {
it('Welcome renders hello world', () => {
...
});
});
Run Code Online (Sandbox Code Playgroud)
所以我尝试添加
import {describe,it} from 'jest';
Run Code Online (Sandbox Code Playgroud)
和
import jest from 'jest';
jest.describe( ...
jest.it( ...
Run Code Online (Sandbox Code Playgroud)
和其他变化..
但没有运气.
我应该如何使它工作?
Ale*_*ada 18
这个最简单的办法是添加jest: true到您的env配置中eslint,就像这样:
"env": {
"browser": true,
"node": true,
"jasmine": true,
"jest": true,
"es6": true
},
Run Code Online (Sandbox Code Playgroud)
guy*_*abi 14
在我意识到jest在节点中运行后,它意识到我可以这样做:
let { describe, it } = global;
Run Code Online (Sandbox Code Playgroud)
不完美,但又向前迈进了一步......现在我不再需要用全局变量配置我的linter了.
der*_*783 10
试试下面的代码:
import {describe, expect, it } from '@jest/globals'
Run Code Online (Sandbox Code Playgroud)
如果您更喜欢显式导入,您可以从“@jest/globals”导入 {describe、expect、test}。
来源https://jestjs.io/docs/en/api
我同样不喜欢使用或依赖全局变量,在不同项目中复制/粘贴各种解决方法后,我决定创建jest-without-globals一个非常小的包装器来支持导入 Jest 的功能。
根据使用文档,使用起来很简单:
Run Code Online (Sandbox Code Playgroud)import { describe, it, expect } from 'jest-without-globals' describe('describe should create a section', () => { it('it should checkmark', () => { expect('').toBe('') }) })Jest 的 API中可用的所有函数以及 和
jest都expect可以从 导入jest-without-globals。
使用jest-without-globals,我不再需要复制/粘贴解决方法,也不需要配置像 ESLintjest环境这样的设置,它只是作为一个简单的导入工作。
它也是用 TypeScript 编写的,因此您可以开箱即用地进行输入,并且经过全面测试以确保其保持正常工作。
| 归档时间: |
|
| 查看次数: |
13660 次 |
| 最近记录: |