如何导入开玩笑?

时间:2016-12-25 21:27:12

标签: jestjs es6-modules

我想在我的开玩笑测试代码中摆脱全局变量。具体为describeitexpect

describe('Welcome (Snapshot)', () => {
  it('Welcome renders hello world', () => {
     ...
  });
});

所以我尝试添加

import {describe,it} from 'jest';

import jest from 'jest';

jest.describe( ... 
  jest.it( ... 

和其他变化..

但没有运气。

我应该如何运作?

4 个答案:

答案 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中的所有可用功能以及jestexpect都可以从jest-without-globals导入。

使用jest-without-globals,我不再需要复制/粘贴变通办法,也不需要配置ESLint的jest环境之类的设置,它只是一个简单的导入。
它也是用TypeScript编写的,因此您可以直接输入内容,并且已经过全面测试以确保其正常工作。

答案 3 :(得分:1)

更新的答案

尝试以下代码:

import {describe, expect, it } from '@jest/globals'

如果您喜欢显式导入,则可以从“ @ jest / globals”导入{描述,期望,测试}。

来源https://jestjs.io/docs/en/api