跳到主要内容
版本:26.x.

安装和移除

写测试的时代你经常需要在运行测试做一件设备工作,和在传球上测试后行走一流管理工作。笑话

为多重测试重复设置

如果你有一般来很为多为多次重复设置的工作,你可以使用摘要after

例如,我们考虑一流与城市信仰数码行行的测试。你竟在每个测试之外之外使用方法initializeCityDatabase(),当时必须在每个测试,使用方法clearcitydatabase()。你可以这样这样:

摘要 => {
initializeCityDatabase. ;
} ;
after => {
clearcitydatabase. ;
} ;
测试 '城市数据库有维也纳' => {
预计 iscity. '维也纳' Tobeththy. ;
} ;
测试 '城市数据库有圣胡安' => {
预计 iscity. '圣胡安' Tobeththy. ;
} ;

摘要after能够通讯与异步代码测试相同的方向理异步代码 - - 他们可采取完毕承诺。例如,如果initializeCityDatabase()返回解决数码初始化时代的承诺,我们会想返回返回一一︰︰︰

摘要 => {
返回 initializeCityDatabase. ;
} ;

一件事

在某些情况下,你只需要在文章的开头一次。如果设置是异步的,这可能是特别的,所以你不能在线完成。当设置是异步时,这可以特别麻烦,因此您不能在线完成。jest提供Beforeall.毕竟管理这种情况。

例如,如果initializeCityDatabase.clearcitydatabase.都返回了承诺,城市数码可在测试中间用,我们就能把我们的测试代码成这样:

Beforeall. => {
返回 initializeCityDatabase. ;
} ;
毕竟 => {
返回 clearcitydatabase. ;
} ;
测试 '城市数据库有维也纳' => {
预计 iscity. '维也纳' Tobeththy. ;
} ;
测试 '城市数据库有圣胡安' => {
预计 iscity. '圣胡安' Tobeththy. ;
} ;

作用域

默认默认下,的块可以应应应件件中的每个测试。另外可以描述块来将测试分享。当的块在描述块内部时,则其只适用于描述块内的测试。

比如说,我们不知疲倦有一张城市的数码,还有一个个品码数字。我们可以为不喜欢的测试做不成不道德

//适用于此文件中的所有测试
摘要 => {
返回 initializeCityDatabase. ;
} ;
测试 '城市数据库有维也纳' => {
预计 iscity. '维也纳' Tobeththy. ;
} ;
测试 '城市数据库有圣胡安' => {
预计 iscity. '圣胡安' Tobeththy. ;
} ;
描述 '与城市相匹配食物' => {
//仅适用于此描述块的测试
摘要 => {
返回 initializefooddatabase. ;
} ;
测试 '维也纳<3香肠' => {
预计 IsValidCityFoodPair. '维也纳' 'Wiener Schnitzel' 成为 真的 ;
} ;
测试 '圣胡安<3种植' => {
预计 IsValidCityFoodPair. '圣胡安' 'mofongo' 成为 真的 ;
} ;
} ;

注意顶级的摘要描述中的摘要执行的更早。下载的代码也许能帮助你理想没有钩子的执行。

Beforeall. => 安慰 日志 '1 - beforeall' ;
毕竟 => 安慰 日志 '1 - 追随' ;
摘要 => 安慰 日志 '1 - presseach' ;
after => 安慰 日志 '1 - 追随' ;
测试 '' => 安慰 日志 '1 - 测试' ;
描述 '范围/嵌套块' => {
Beforeall. => 安慰 日志 '2 - beforeall' ;
毕竟 => 安慰 日志 '2 - 追随' ;
摘要 => 安慰 日志 '2 - 摘要' ;
after => 安慰 日志 '2 - 追随' ;
测试 '' => 安慰 日志 '2 - 测试' ;
} ;
// 1 - beforeall
// 1 - 婚姻
// 1 - 测试
// 1 - 赛后
// 2 - beforeall
// 1 - 婚姻
// 2 - 前后
// 2 - 测试
// 2 - 赛后
// 1 - 赛后
// 2 - 追随
// 1 - 追随

描述和测试块的执行顺序

jest会在没有真正的测试开的之后执行测试文库里有没有的秀的谚语(处理程序)。这是在前*后*管理程序里程(而不在在形象中)进行制备工作和管理工作的另个。当描述块运行完,,默认默认下,jest会按照测试出现的顺序(译者注:原文他们在收集阶段遇到的顺序)依次依次行没有测试,,等待等待一个完成并定理好,然后才继续往走。

考虑以下示例测试文章和输出:

描述 '外' => {
安慰 日志 '描述外 - a' ;
描述 '描述内部1' => {
安慰 日志 '描述内部1' ;
测试 '测试1' => {
安慰 日志 '测试内部1' ;
预计 真的 toequal. 真的 ;
} ;
} ;
安慰 日志 '描述外b' ;
测试 '测试1' => {
安慰 日志 '描述外部' ;
预计 真的 toequal. 真的 ;
} ;
描述 '描述内部2' => {
安慰 日志 '描述内部2' ;
测试 '测试内部2' => {
安慰 日志 '测试内部2' ;
预计 错误的 toequal. 错误的 ;
} ;
} ;
安慰 日志 '描述外部c' ;
} ;
//描述外A
//描述内部1
//描述外b
//描述内部2
//描述外c
//测试描述内部1
//测试描述外部
//测试描述内部2

通用建议

如果测试失败,第一个件要检查的是,当仅运行这测试测试测试测试测试时,它是仍然仍然失败。只用jest运行一个测试,暂时改变测试命令到A.test.only.

测试 只要 “这将是唯一运行的测试 => {
预计 真的 成为 错误的 ;
} ;
测试 '这个测试不会运行' => {
预计 '一个' 成为 '一个' ;
} ;

如果你有一个个测试,当它作用是一击大的用途中的一切时,经常运行,而且你单位驾驶它时,并不会失败,所以好的考虑其他对测试的影响。通讯可以通讯修改摘要来到一般来说,如果您不确定是否正在修改某些共享状态,您也可以尝试一个摘要那个日志数据。