跳到主要内容
版本:27.0

入门

安装Jest使用

添加 --dev Jest.

或者NPM.

NPM. 安装 ——save-dev开玩笑

注意:Jest文档使用命令,但是NPM.也会工作。你可以比较NPM.命令中的命令纱线文档,yabo2013这里

让我们通过写入测试,以便对添加两个数字的假设函数来开始。首先,创建一个um.js.文件:

功能 一种 B. {
返回 一种 + B. ;
}
模块 出口 = ;

然后,创建一个名为的文件sum.test.js.。这将包含我们的实际测试:

const = 要求 '。/和' ;
测试 '增加1 + 2到等于3' => {
预计 1 2 成为 3. ;
} ;

将以下部分添加到您的package.json.

{
“脚本” {
“测试” “开玩笑”
}
}

最后,运行纱线测试npm运行测试和Jest将打印此消息:

通过。/ sum.test.js.
✓补充说 1 + 2 相等 3. 5ms.

您只需使用Jest才能成功地写下您的第一次测试!

使用该测试预计成为为了测试两个值完全相同。了解jest可以测试的其他事情,看使用匹配器

从命令行运行

您可以直接从CLI运行jest(如果它在您的全球范围内提供小路,例如,经过纱线全球加入jestnpm安装jest - global),提供多种有用的选择。

以下是如何在匹配的文件上运行jest我的测试, 使用config.json.作为配置文件,并在运行后显示本地操作系统通知:

Jest My-test --notify --config = config.json.

如果您想了解更多有关跑步的信息笑话通过命令行,看看jest cli选项页。

附加配置

生成基本配置文件

基于您的项目,Jest将询问您几个问题,并将为每个选项的简短描述创建基本配置文件:

jest --init.

使用Babel.

使用禁止禁忌,通过安装所需的依赖项

添加 --dev babel-jest @ babel / core @ babel / preset-eng

通过创建a,配置babel以定位当前版本的节点babel.config.js.文件中的文件:

// babel.config.js.
模块 出口 = {
预设 [ [ “@babel / preset-env” { 目标 { 节点 '当前的' } } ] ]
} ;

Babel的理想配置将取决于您的项目。Babel的Doyabo2013cs.更多细节。

让您的Babel配置jest-aware

jest将设置process.env.node_env.'测试'如果它没有被设为其他值。您可以在您的配置中使用它来有条件地只设置Jest所需的编译,例如。

// babel.config.js.
模块 出口 = API. => {
const istest. = API. env. '测试' ;
//您可以使用ISTEST来确定要使用的预设和插件。
返回 {
// ......
} ;
} ;

笔记:Babel-Jest.安装Jest时自动安装,如果项目中存在Babel配置,则会自动转换文件。要避免此行为,您可以明确重置变换配置选项:

// jest.config.js.
模块 出口 = {
变换 { }
} ;
Babel 6支持

JEST 24对Babel的支持6.我们强烈建议您升级到Babel 7,积极维护。但是,如果您无法升级到Babel 7,无论是使用JEST 23还是升级到JEST 24Babel-Jest.锁定在版本23中,如下图所示:

“依赖性”:{
“Babel-Core”:“^ 6.26.3”,
“Babel-Jest”:“^ 23.6.0”,
“babel-preset-env”:“^ 1.7.0”,
“jest”:“^ 24.0.0”
}

虽然我们通常建议使用每个Jest包的相同版本,但此解决方法将允许您使用Babel 6继续使用最新版本的Jest。

使用webpack

jest可以在使用的项目中使用网客管理资产,样式和汇编。WebPack确实提供了其他一些工具的挑战。参考网客指南开始。

使用包裹

jest可以在使用的项目中使用包裹捆绑管理资产,样式和编译类似于webpack。包裹需要零配置。请咨询官方yabo2013开始。

使用类型签字

Jest通过Babel支持Cypescript。首先,确保您按照说明进行操作使用Babel.以上。接下来,安装@babel / preset-typescript通过

添加 --dev @ babel / preset-typescript

然后添加@babel / preset-typescript到您的预设列表babel.config.js.

// babel.config.js.
module.exports = {
预设:[
['@babel / preset-env',{targets:{node:'current'}}],
+ '@babel / preset-typescript',
],
};

但是,有一些警告使用babel使用类型签字。因为Babel中的TypeScript支持纯粹是频化,但Jest将不会键入 - 在运行时检查您的测试。如果你想要,你可以使用TS-JEST.相反,或只是运行TypeScript编译器TSC.单独地(或作为构建过程的一部分)。

您可能还想安装@types /开玩笑您正在使用的Jest版本的模块。使用TypeScri亚搏取款pt写入测试时,这将有助于提供完整的键入。

为了@类型/ *模块建议尝试匹配关联模块的版本。例如,如果您正在使用26.4.0笑话然后使用26.4.x.@types /开玩笑是理想的。一般来说,尝试匹配主要(26.)和未成年人(4.)版本尽可能接近。

添加 --dev @ types / jest
上次更新了经过Simen Bekkhus.