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



我是 React 的新手,仍在努力理解一些基础知识,对不起,如果我的问题看起来很奇怪。 我们知道我们需要将模块导入为

import sth from 'sth';

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

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

正如@nahanil指出的那样,Jest 将您需要的方法放在 NodeJS 运行时的全局范围内。如果在运行 jest 时在文件中放置console.log(global),您将看到这些方法已挂接到全局范围。其他库(如 assert(不遵循相同的约定,您需要导入所需的断言。

这发生在这里:https://github.com/facebook/jest/blob/160d27ae9b6728dccf268f8a98351bcf82a7d9e1/packages/jest-environment-node/src/index.ts#L21

如官方文档 api 中第一部分所述📚 :

在您的测试文件中,Jest 将这些方法和对象中的每一个放入全局环境中。您无需要求或导入任何内容即可使用它们。但是,如果您更喜欢显式导入,则可以从"@jest/globals"导入{描述,期望,测试}。

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

最新更新