为什么我们在使用Jest时不需要导入一些东西?

4nkexdtk  于 2023-04-10  发布在  Jest
关注(0)|答案(2)|浏览(95)

我是React的新手,仍然在努力理解一些基础知识,如果我的问题看起来很奇怪,很抱歉。

import sth from 'sth';

所以当我们使用Jest时,我们不需要这样做吗:

import { test, expect...} from 'Jest';
y1aodyip

y1aodyip1#

正如@nahanil所指出的,Jest将您需要的方法放在NodeJS运行时的全局范围内。如果您在运行jest时将console.log(global)放入文件中,您将看到这些方法被挂接到全局范围内。其他库(如assert)不遵循相同的约定,您需要导入所需的Assert。
这种情况发生在这里:https://github.com/facebook/jest/blob/160d27ae9b6728dccf268f8a98351bcf82a7d9e1/packages/jest-environment-node/src/index.ts#L21

0tdrvxhp

0tdrvxhp2#

official documentation api 📚中的第一部分所述:
在测试文件中,Jest将这些方法和对象中的每一个都放入全局环境中。您不必要求或导入任何内容来使用它们。但是,如果您更喜欢显式导入,则可以从'@jest/globals'导入{describe,expect,test}。

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

相关问题