跳转到主要内容
版本:26.倍

开始

Jest安装使用:

添加 - - - dev开玩笑

npm:

npm 安装 --save-dev Jest

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

让我们首先为一个假设的函数编写一个测试,该函数将两个数相加。首先,创建一个sum.js文件:

函数 总和 ( 一个 , b ) {
返回 一个 + b ;
}
模块 出口 = 总和 ;

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

常量 总和 = 需要 ( ”。/总和 ) ;
测试 ( 1 + 2等于3 , ( ) = > {
预计 ( 总和 ( 1 , 2 ) ) 托比 ( 3. ) ;
} ) ;

将以下部分添加到package.json:

{
“脚本” : {
“测试” : “笑话”
}
}

最后,跑步纱线测试或者NPM运行测试Jest将打印此消息:

通过。/ sum.test.js
✓补充道 1 + 2 等于 3. ( 5女士 )

您刚刚成功地使用Jest编写了第一个测试!

这个测试使用预计托比为了检验两个值是否完全相同。要了解Jest可以测试的其他内容,请参见使用匹配器

从命令行运行#

您可以直接从CLI运行Jest(如果它在您的路径,例如,纱线全局添加笑话或者NPM安装jest——global)有多种有用的选择。

下面是如何在文件匹配上运行Jest我的测试,使用json作为配置文件并在运行后显示本机OS通知:

开我的test——notify——config玩笑 = json

如果你想了解更多关于跑步的知识开玩笑通过命令行,查看Jest CLI选项页面。

额外的配置#

生成基本配置文件#

基于你的项目,Jest会问你一些问题,并创建一个基本配置文件,其中包含每个选项的简短描述:

笑话——初始化

使用巴别塔#

使用巴别塔,安装所需的依赖项:

添加 ——dev babel-jest @babel/core @babel/preset-env

通过创建一个babel.config.js文件在你的项目的根:

/ / babel.config.js
模块 出口 = {
预设 : ( ( 'Babel / Preset-Env' , { 目标 : { 节点 : “当前” } } ] ] ,
} ;

Babel的理想配置取决于您的项目。看到巴别塔的文档yabo2013为更多的细节。

让你的Babel配置知道笑话

Jest将process.env.NODE_ENV“测试”如果它没有设置为其他东西。您可以在配置中使用它只设置只有Jes​​t所需的编译,例如,

/ / babel.config.js
模块 出口 = api = > {
常量 坚持 = api env ( “测试” ) ;
//你可以使用isTest来确定使用什么预设和插件。
返回 {
/ /……
} ;
} ;

注意:babel-jest是在安装Jest时自动安装的,如果项目中存在babel配置,则会自动转换文件。为避免此行为,可以显式地重置转换配置选项:

/ / jest.config.js
模块 出口 = {
转换 : { } ,
} ;
巴别塔6支持

Jest 24放弃了对通天塔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”,
“笑话”:“^ 24.0.0”
}

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

使用webpack.#

Jest可以用于使用webpack管理资产、样式和编译。与其他工具相比,Webpack确实提供了一些独特的挑战。指的是webpack指南开始。

使用包裹#

Jest可以用于使用parcel-bundler管理资产,样式和编译类似于WebPack。宗地需要零配置。参考官员yabo2013开始。

使用打印稿#

Jest通过Babel支持TypeScript。首先,确保你遵循了上面的说明使用巴别塔以上。接下来,安装@ Babel / Preset-TypeScript通过:

添加 - - - dev @babel / preset-typescript

然后加@ Babel / Preset-TypeScript到您的babel.config.js

/ / babel.config.js
模块。出口= {
预设:[
[@babel / preset-env,{目标:{节点:“当前”}}),
+ “@babel / preset-typescript”,
),
};

然而,有一些警告到在Babel中使用TypeScript。因为Babel中的TypeScript支持纯粹是翻译,所以Jest不会在你的测试运行时对它们进行类型检查。如果你想要,你可以用ts-jest或者直接运行TypeScript编译器tsc单独(或作为构建过程的一部分)。

您可能还想安装@类型/ jest模块,您正在使用的Jest版本。这将有助于在用Typ亚搏取款eScript编写测试时提供完整的类型。

@types / *模块,建议尝试匹配相关模块的版本。例如,如果您正在使用26.4.0开玩笑然后使用26.4.x@类型/ jest是理想的。一般来说,尽量匹配专业(26)及副修(4)版本,尽可能接近。

添加 - - - dev @types /笑话
最后一次更新在通过Sebastien Lorber