跳到主要内容
版本:27.0

开始

使用安装Jest纱线:

纱线 添加 --开玩笑

npm:

npm 安装 ——save-dev开玩笑

注:Jest文档使用纱线命令,但是npm也可以。你可以比较纱线npm中的命令好的,给你yabo2013.

让我们开始为一个假设函数编写一个测试,该函数将两个数字相加sum.js文件:

作用 总和 ( A. , B ) {
回来 A. + B ;
}
单元 . 出口 = 总和 ;

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

常数 总和 = 要求 ( “/总数” ) ;
测验 ( '将1+2相加等于3' , ( ) => {
预料 ( 总和 ( 1. , 2. ) ) . 托比 ( 3. ) ;
} ) ;

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

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

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

通过。/sum.test.js
✓ 加上 1. + 2. 相等 3. ( 5ms )

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

此测试使用预料托比要测试这两个值是否完全相同。要了解Jest可以测试的其他内容,请参阅使用匹配器.

从命令行运行#

您可以直接从CLI运行Jest(如果在您的路径,例如纱线全球添加笑话npm安装jest--全局),并提供各种有用的选项。

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

嘲笑我的测试--notify--config = config.json

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

附加配置#

生成基本配置文件#

根据您的项目,Jest将询问您几个问题,并将创建一个基本配置文件,其中包含每个选项的简短说明:

开玩笑

使用巴别塔#

使用巴别塔,通过安装所需的依赖项纱线:

纱线 添加 --开发巴别塔笑话@babel/core@babel/preset env

将Babel配置为通过创建babel.config.js项目根目录中的文件:

//babel.config.js
单元 . 出口 = {
预设 : [ [ “@babel / preset-env” , { 目标 : { 节点 : “当前” } } ] ] ,
} ;

Babel的理想配置取决于您的项目。看见巴贝尔医生yabo2013更多细节。

让你的巴别塔配置笑话意识到

开玩笑会成功的process.env.NODE_env“测试”如果它没有被设置为其他值。您可以在配置中使用它来有条件地只设置Jest所需的编译,例如。

//babel.config.js
单元 . 出口 = 应用程序编程接口 => {
常数 伊斯特 = 应用程序编程接口 . 环境 ( “测试” ) ;
//你可以使用isTest来决定使用什么预设和插件。
回来 {
// ...
} ;
} ;

注:巴别塔玩笑在安装Jest时自动安装,如果项目中存在babel配置,将自动转换文件。为避免此行为,可以显式重置变换配置选项:

//jest.config.js
单元 . 出口 = {
变换 : { } ,
} ;
巴别塔6支持

Jest 24已放弃对Babel 6的支持。我们强烈建议您升级到Babel 7,该版本正在积极维护中。但是,如果您无法升级到Babel 7,请继续使用Jest 23或升级到Jest 24巴别塔玩笑锁定在版本23,如下例所示:

“依赖项”:{
“巴别塔核心”:“^6.26.3”,
“巴别塔笑话”:“^23.6.0”,
“巴别塔预设环境”:“^1.7.0”,
“笑话”:“^24.0.0”
}

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

使用webpack#

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

使用包裹#

Jest可用于使用包裹捆扎机像webpack一样管理资产、样式和编译。包裹需要零配置。请参阅官方yabo2013开始吧。

使用打字脚本#

Jest通过Babel支持TypeScript。首先,确保你按照说明操作使用巴别塔以上。接下来,安装@babel / preset-typescript通过纱线:

纱线 添加 --dev@babel/预设类型脚本

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

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

然而,有一些警告由于Babel中的TypeScript支持纯粹是透明的,Jest不会在测试运行时对其进行类型检查。如果需要,可以使用开玩笑相反,或者只是运行TypeScript编译器tsc单独(或作为构建过程的一部分)。

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

对于@类型/*模块建议尝试匹配关联模块的版本。例如,如果您使用26.4.0开玩笑然后使用26.4.x@types /开玩笑这是理想的。一般来说,试着匹配专业(26)小调(4.)版本尽可能接近。

纱线 添加 --dev@types/jest
最近更新日期通过西门·贝克胡斯