跳到主要内容
版本:25.倍

全球

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

Metodos#


参考#

Despuésdodo(fn,tiempo)#

在此文件中的所有测试完成后运行函数。如果函数返回承诺或是生成器,则Jest等待该承诺在继续之前解析。

可选地,您可以提供一个超时(以毫秒为单位),用于指定在中止前等待多长时间。注意:默认超时为5秒。

比如:

比如:

const GlobalDatabase. = makeGlobalDatabase ( ) ;
功能 cleanUpDatabase ( db ) {
db 清理 ( ) ;
}
毕竟 ( ( ) => {
cleanUpDatabase ( GlobalDatabase. ) ;
} ) ;
测试 ( '可以找到东西' , ( ) => {
返回 GlobalDatabase. ( “东西” , { } , 结果 => {
预计 ( 结果 长度 ) tobegreathan ( 0 ) ;
} ) ;
} ) ;
测试 ( '可以插入某物' , ( ) => {
返回 GlobalDatabase. ( “东西” , makething. ( ) , 回复 => {
预计 ( 回复 成功 ) Tobeththy. ( ) ;
} ) ;
} ) ;

SI.毕竟Es Llamado Dentro de Un Bloque描述,Este SeEjecutarálalfinal de laejecucióndelbloque dewist。

如果将其逐出algún其稳定的基础将在después的基础上在最后的基础上,将会有更多的效用afterEach

如果将其逐出algún其稳定的基础将在después的基础上在最后的基础上,将会有更多的效用afterEach

《afterEach (fn)#

在此文件中的每一个测试完成后运行函数。如果函数返回承诺或是生成器,则Jest等待该承诺在继续之前解析。

可选地,您可以提供一个超时(以毫秒为单位),用于指定在中止前等待多长时间。注意:默认超时为5秒。

比如:

比如:

const GlobalDatabase. = makeGlobalDatabase ( ) ;
功能 cleanUpDatabase ( db ) {
db 清理 ( ) ;
}
afterEach ( ( ) => {
cleanUpDatabase ( GlobalDatabase. ) ;
} ) ;
测试 ( '可以找到东西' , ( ) => {
返回 GlobalDatabase. ( “东西” , { } , 结果 => {
预计 ( 结果 长度 ) tobegreathan ( 0 ) ;
} ) ;
} ) ;
测试 ( '可以插入某物' , ( ) => {
返回 GlobalDatabase. ( “东西” , makething. ( ) , 回复 => {
预计 ( 回复 成功 ) Tobeththy. ( ) ;
} ) ;
} ) ;

SI.毕竟Es Llamado Dentro de Un Bloque描述, este se ejecutará的最后的ejecución的prueba在el bloque描述。

Si se desea ejecutaralgúntipo de limpieza o restablecimieto una sola vez por todas las pruebas,se puede pultizar毕竟

Si se desea ejecutaralgúntipo de limpieza o restablecimieto una sola vez por todas las pruebas,se puede pultizar毕竟

《beforeAll (fn)#

在此文件中的任何测试运行之前运行函数。如果函数返回一个承诺或是一个生成器,则Jest将在运行测试之前等待该承诺解决。

可选地,您可以提供一个超时(以毫秒为单位),用于指定在中止前等待多长时间。注意:默认超时为5秒。

比如:

比如:

const GlobalDatabase. = makeGlobalDatabase ( ) ;
beforeEach ( ( ) => {
//清除数据库并添加一些测试数据。
// Jest将在运行测试之前等待此承诺解决。
返回 GlobalDatabase. 清除 ( ) 然后 ( ( ) => {
返回 GlobalDatabase. ( { testData : 'foo' } ) ;
} ) ;
} ) ;
测试 ( '可以找到东西' , ( ) => {
返回 GlobalDatabase. ( “东西” , { } , 结果 => {
预计 ( 结果 长度 ) tobegreathan ( 0 ) ;
} ) ;
} ) ;
测试 ( '可以插入某物' , ( ) => {
返回 GlobalDatabase. ( “东西” , makething. ( ) , 回复 => {
预计 ( 回复 成功 ) Tobeththy. ( ) ;
} ) ;
} ) ;

Aqui el bloquebeforeAllGarantiza Que La Base de Datos Sea Configurada Antes de que se ejecuten las prufebas。如果设置是同步的,则可以没有beforeAll。La Clave es que eespera一个Una Promise Para Resolver,De Modo QueTambiénSEPEPuede TenerConfiguración无处不闻的asincrona。

Si se desea ejecutarcódigoantes de cada prueba en lugar de tantes de todas las pruebas,se puede UsarbeforeEach

Si se desea ejecutarcódigoantes de cada prueba en lugar de tantes de todas las pruebas,se puede UsarbeforeEach

《beforeEach (fn)#

在运行此文件中的每个测试之前运行一个函数。如果函数返回一个承诺或者是一个生成器,Jest将在运行测试之前等待那个承诺的解析。

可选地,您可以提供一个超时(以毫秒为单位),用于指定在中止前等待多长时间。注意:默认超时为5秒。

比如:

比如:

const GlobalDatabase. = makeGlobalDatabase ( ) ;
beforeAll ( ( ) => {
//清除数据库并添加一些测试数据。
// Jest将在运行测试之前等待此承诺解决。
返回 GlobalDatabase. 清除 ( ) 然后 ( ( ) => {
返回 GlobalDatabase. ( { testData : 'foo' } ) ;
} ) ;
} ) ;
//因为我们在这个例子中只设置了一次数据库,所以它很重要
//我们的测试不修改它。Test ('can find things', () => {
返回 GlobalDatabase. ( “东西” , { } , 结果 => {
预计 ( 结果 长度 ) tobegreathan ( 0 ) ;
} ) ;
} ) ;

Si El BloquebeforeAllse encuentra dentro de wen bloque描述,Estéseejecutaráfuavezantes de cada prueba en el bloque design。

如果驱逐者código de configuración inmal,则为cualquier prueba提供支持,usesébeforeAll

如果驱逐者código de configuración inmal,则为cualquier prueba提供支持,usesébeforeAll

描述(名称,fn)#

描述(名称,fn)创建将几个相关测试分组在一起的块。如果你不同意,我就不来了保佑这代表了我们的美好生活,我们的网址是podría

const 保佑 = {
可口的 : 真的 ,
酸的 : ,
} ;
描述 ( '我的饮料' , ( ) => {
测试 ( '美味' , ( ) => {
预计 ( 保佑 可口的 ) Tobeththy. ( ) ;
} ) ;
测试 ( “不是酸” , ( ) => {
预计 ( 保佑 酸的 ) 吐痰 ( ) ;
} ) ;
} ) ;

这不是必需的 - 你可以写下测试直接在顶层的块。但是,如果您希望将测试组织成组,这可能很方便。

tambiénse pueden anidar bloques描述Si se tiene una jerarquía de pruebas:

const Cadenabinariaanumero. = cadenaBinaria => {
如果 ( ! / ^ [01] + $ / 测试 ( cadenaBinaria ) ) {
新的 CustomError ( “没有,número binario。” ) ;
}
返回 释放 ( cadenaBinaria , 2 ) ;
} ;
描述 ( “cadenaBinariaANumero” , ( ) => {
描述 ( 'Dada Una Cadena Binaria Invala' , ( ) => {
测试 ( 'compuesta de no-números arroja un CustomError' , ( ) => {
预计 ( ( ) => Cadenabinariaanumero. ( 'abc' ) ) Totholowerror. ( CustomError ) ;
} ) ;
测试 ( 'con espacios en blanco extra arroja un CustomError' , ( ) => {
预计 ( ( ) => Cadenabinariaanumero. ( “100” ) ) Totholowerror. ( CustomError ) ;
} ) ;
} ) ;
描述 ( "这是有效的双韵颂" , ( ) => {
测试 ( 'regresa elnúmerofretero' , ( ) => {
预计 ( Cadenabinariaanumero. ( '100' ) ) 托比 ( 4 ) ;
} ) ;
} ) ;
} ) ;

sefyage.each(表)(姓名,fn,超时)#

使用描述如果您继续使用不同的数据复制相同的测试套件。描述允许您一次性编写测试套件并传入数据。

描述有两个API:

1。sefyage.each(表)(姓名,fn,超时)#

  • 表格:大批与传递到的参数的阵列fn为每一行。
    • 请注意如果您通过1D数组的基元,则内部将映射到表I.E.[1,2,3] - > [[1],[2],[3]]
  • 名称:字符串测试套件的标题。
    • 通过位置注入参数生成唯一的测试标题Printf.格式化:
      • % p-漂亮格式
      • % s- 细绳。
      • % d——数字。
      • %我- 整数。
      • % f—浮点值。
      • % j- json。
      • %啊- 目的。
      • % #-测试用例索引。
      • % %- 单百分号('%')。这不会消耗参数。
  • fn:功能要耗尽的测试套件,这是将在每个行中接收参数的函数参数。
  • 可选地,您可以提供一个超时(以毫秒为单位)用于指定在中止每一行之前等待多长时间。注意:默认超时为5秒。

例子:

描述 每个 ( (
( 1 , 1 , 2 ] ,
( 1 , 2 , 3. ] ,
( 2 , 1 , 3. ] ,
] ) ( '.dd(%i,%i)' , ( 一个 , b , 预期的 ) => {
测试 ( 返回 $ { 预期的 } , ( ) => {
预计 ( 一个 + b ) 托比 ( 预期的 ) ;
} ) ;
测试 ( 返回值不能大于 $ { 预期的 } , ( ) => {
预计 ( 一个 + b ) 不是 tobegreathan ( 预期的 ) ;
} ) ;
测试 ( 返回的值不小于 $ { 预期的 } , ( ) => {
预计 ( 一个 + b ) 不是 toBeLessThan ( 预期的 ) ;
} ) ;
} ) ;

2。Devely.evelable`(姓名,fn,超时)#

  • 表格:标记的模板文字
    • 第一行变量名称列标题分隔|
    • 使用作为模板文字表达式的一个或多个后续数据$ {value}语法。
  • 名称:字符串测试套件的标题,使用$变量将测试数据从标记的模板表达式注入套件标题。
    • 要注入嵌套的对象值,请使用您可以提供键入键入..$变量.path.to.value.
  • fn:功能要运行的测试套件,这是接收测试数据对象的函数。
  • 可选地,您可以提供一个超时(以毫秒为单位)用于指定在中止每一行之前等待多长时间。注意:默认超时为5秒。

例子:

描述 每个
a |B |预期的
$ { 1 } | $ { 1 } | $ { 2 }
$ { 1 } | $ { 2 } | $ { 3. }
$ { 2 } | $ { 1 } | $ { 3. }
( '$ a + $ b' , ( { 一个 , b , 预期的 } ) => {
测试 ( 返回 $ { 预期的 } , ( ) => {
预计 ( 一个 + b ) 托比 ( 预期的 ) ;
} ) ;
测试 ( 返回值不能大于 $ { 预期的 } , ( ) => {
预计 ( 一个 + b ) 不是 tobegreathan ( 预期的 ) ;
} ) ;
测试 ( 返回的值不小于 $ { 预期的 } , ( ) => {
预计 ( 一个 + b ) 不是 toBeLessThan ( 预期的 ) ;
} ) ;
} ) ;

describe.only(名称,fn)#

se puede materizar.describe.onlySi se desea ejecutar solo ún bloque描述:

Si El BloquebeforeAllse encuentra dentro de wen bloque描述,Estéseejecutaráalprincipio del bloque的描述。

描述 只要 ( “mi可以” , ( ) => {
测试 ( “es deliciosa” , ( ) => {
预计 ( miBebida deliciosa ) Tobeththy. ( ) ;
} ) ;
测试 ( '没有es amarga' , ( ) => {
预计 ( miBebida amarga ) 吐痰 ( ) ;
} ) ;
} ) ;
描述 ( “mi一部分可以的 , ( ) => {
/ /……将被忽略
} ) ;

sefy.only.each(表)(姓名,fn)#

也在别名下:fdescribe.each(表)(姓名,fn)fdescribe.each``(姓名,fn)

使用sefy.only.each.如果您只想运行特定的数据驱动测试套件。

sefy.only.each.有两个API:

sefy.only.each(表)(姓名,fn)#

描述 只要 每个 ( (
( 1 , 1 , 2 ] ,
( 1 , 2 , 3. ] ,
( 2 , 1 , 3. ] ,
] ) ( '.dd(%i,%i)' , ( 一个 , b , 预期的 ) => {
测试 ( 返回 $ { 预期的 } , ( ) => {
预计 ( 一个 + b ) 托比 ( 预期的 ) ;
} ) ;
} ) ;
测试 ( '不会被跑' , ( ) => {
预计 ( 1 / 0 ) 托比 ( ) ;
} ) ;

sefy.only.each.”表格”(名称,fn)#

描述 只要 每个
a |B |预期的
$ { 1 } | $ { 1 } | $ { 2 }
$ { 1 } | $ { 2 } | $ { 3. }
$ { 2 } | $ { 1 } | $ { 3. }
( '返回$ a预期$ a增加$ b' , ( { 一个 , b , 预期的 } ) => {
测试 ( '通过' , ( ) => {
预计 ( 一个 + b ) 托比 ( 预期的 ) ;
} ) ;
} ) ;
测试 ( '不会被跑' , ( ) => {
预计 ( 1 / 0 ) 托比 ( ) ;
} ) ;

陈述(名称,fn)#

se puede materizar.陈述如果我们特别描述:

se puede materizar.陈述如果我们特别描述:

描述 ( “mi可以” , ( ) => {
测试 ( “es deliciosa” , ( ) => {
预计 ( miBebida deliciosa ) Tobeththy. ( ) ;
} ) ;
测试 ( '没有es amarga' , ( ) => {
预计 ( miBebida amarga ) 吐痰 ( ) ;
} ) ;
} ) ;
描述 跳过 ( “mi一部分可以的 , ( ) => {
/ /……将被忽略
} ) ;

使用陈述通常是一个清洁的替代方案,可以暂时评论一大块的测试。

describe.skip.each(表)(姓名,fn)#

也在别名下:xdescribe.each(表)(姓名,fn)xdescribe。每个”表格”(名称,fn)

使用describe.skip.each.如果要停止运行套件数据驱动测试。

describe.skip.each.有两个API:

describe.skip.each(表)(姓名,fn)#

描述 跳过 每个 ( (
( 1 , 1 , 2 ] ,
( 1 , 2 , 3. ] ,
( 2 , 1 , 3. ] ,
] ) ( '.dd(%i,%i)' , ( 一个 , b , 预期的 ) => {
测试 ( 返回 $ { 预期的 } , ( ) => {
预计 ( 一个 + b ) 托比 ( 预期的 ) ; //不会被跑
} ) ;
} ) ;
测试 ( 会跑的 , ( ) => {
预计 ( 1 / 0 ) 托比 ( ) ;
} ) ;

describe.skip.each``(姓名,fn)#

描述 跳过 每个
a |B |预期的
$ { 1 } | $ { 1 } | $ { 2 }
$ { 1 } | $ { 2 } | $ { 3. }
$ { 2 } | $ { 1 } | $ { 3. }
( '返回$ a预期$ a增加$ b' , ( { 一个 , b , 预期的 } ) => {
测试 ( '不会被跑' , ( ) => {
预计 ( 一个 + b ) 托比 ( 预期的 ) ; //不会被跑
} ) ;
} ) ;
测试 ( 会跑的 , ( ) => {
预计 ( 1 / 0 ) 托比 ( ) ;
} ) ;

Prueba(Nombre,Fn,Tiempo)#

TambiénConel别名:它(名称,fn,tiempo)

我们需要一个关于我的故事的档案测试在prueba上跳伞。在这里,我们假设在卢维亚的pulgadas中有一个funcióninchesOfRain ()Debe Regresar Cero。La Prueba CompletaSería:

测试 ( '没有下雨' , ( ) => {
预计 ( inchesOfRain ( ) ) 托比 ( 0 ) ;
} ) ;

第一个参数是测试名;第二个参数是一个包含要测试的期望的异步函数。第三个参数(可选)是超时(以毫秒为单位),用于指定在中止前等待多长时间。注意:默认超时为5秒。

注意:如果一个承诺被退回测试, Jest将等待承诺解决,然后让测试完成。玩笑也会等着你为测试函数提供一个参数,通常称为完毕。当您想要测试回调时,这可能是方便的。看看如何测试异步代码这里

Por Ejeallo,Se asume unafunciónque gregresa una lista de bebidasfetchBeverageList ()。Si EstaFunciónRegresaUna承诺Que Se Resuelve A UNA列表Que Contiene柠檬。Podemos probarlo领导反对:

测试 ( '有柠檬' , ( ) => {
返回 fetchBeverageList ( ) 然后 ( 列表 => {
预计 ( 列表 ) toContain ( '柠檬' ) ;
} ) ;
} ) ;

AUNQUELA LALLAMAA AL测试TerminaráInmediatame,La Prueba NoSeráfitchadaHastaQue Resuelva El承诺。

test.each(表)(名称,fn,超时)#

也在别名下:一般(表)(名称、fn)它。住方式(名字,fn)

使用test.each.如果您继续使用不同的数据复制相同的测试。test.each.允许您编写一次测试并通过数据。

test.each.有两个API:

1。test.each(表)(名称,fn,超时)#

  • 表格:大批数组的参数被传递到测试中fn为每一行。
    • 请注意如果您通过1D数组的基元,则内部将映射到表I.E.[1,2,3] - > [[1],[2],[3]]
  • 名称:字符串测试块的标题。
    • 通过位置注入参数生成唯一的测试标题Printf.格式化:
      • % p-漂亮格式
      • % s- 细绳。
      • % d——数字。
      • %我- 整数。
      • % f—浮点值。
      • % j- json。
      • %啊- 目的。
      • % #-测试用例索引。
      • % %- 单百分号('%')。这不会消耗参数。
  • fn:功能要运行的测试,这是将接收每一行中的参数作为函数参数的函数。
  • 可选地,您可以提供一个超时(以毫秒为单位)用于指定在中止每一行之前等待多长时间。注意:默认超时为5秒。

例子:

测试 每个 ( (
( 1 , 1 , 2 ] ,
( 1 , 2 , 3. ] ,
( 2 , 1 , 3. ] ,
] ) ( '.dd(%i,%i)' , ( 一个 , b , 预期的 ) => {
预计 ( 一个 + b ) 托比 ( 预期的 ) ;
} ) ;

2。test.each`(姓名,fn,超时)#

  • 表格:标记的模板文字
    • 第一行变量名称列标题分隔|
    • 使用作为模板文字表达式的一个或多个后续数据$ {value}语法。
  • 名称:字符串测试的标题,使用$变量将测试数据从标记的模板表达式注入到测试标题中。
    • 要注入嵌套的对象值,请使用您可以提供键入键入..$变量.path.to.value.
  • fn:功能要运行的测试,这是将接收测试数据对象的函数。
  • 可选地,您可以提供一个超时(以毫秒为单位)用于指定在中止每一行之前等待多长时间。注意:默认超时为5秒。

例子:

测试 每个
a |B |预期的
$ { 1 } | $ { 1 } | $ { 2 }
$ { 1 } | $ { 2 } | $ { 3. }
$ { 2 } | $ { 1 } | $ { 3. }
( '返回$ a预期$ a增加$ b' , ( { 一个 , b , 预期的 } ) => {
预计 ( 一个 + b ) 托比 ( 预期的 ) ;
} ) ;

prueba.solo(名称,fn,tiempo)#

也在别名下:它。(名称,fn,超时), 和fit(名称、fn超时)

当您调试大型测试文件时,您通常只想运行测试子集。您可以使用。只要要指定哪些测试是您希望在该测试文件中运行的测试。

可选地,您可以提供一个超时(以毫秒为单位),用于指定在中止前等待多长时间。注意:默认超时为5秒。

Por Ejealto,Dimamos Que Se Tuviera Estas Pruebas:

测试 只要 ( “下雨了” , ( ) => {
预计 ( inchesOfRain ( ) ) tobegreathan ( 0 ) ;
} ) ;
测试 ( '它没有下雪' , ( ) => {
预计 ( inchesofsnow. ( ) ) 托比 ( 0 ) ;
} ) ;

只有“下雨了”测试将在该测试文件中运行,因为它是与之一起运行的test.only.

通常您不会检查代码test.only.在源代码控制中——您可以使用它进行调试,并在修复了损坏的测试后将其删除。

test.only.each(表)(名称、fn)#

也在别名下:it.only.each(表)(姓名,fn),fit.each(表)(姓名,fn),it.Only.Each`(姓名,fn)fit.each``(名字,fn)

使用test.only.each.如果希望仅运行具有不同测试数据的特定测试。

test.only.each.有两个API:

test.only.each(表)(名称、fn)#

测试 只要 每个 ( (
( 1 , 1 , 2 ] ,
( 1 , 2 , 3. ] ,
( 2 , 1 , 3. ] ,
] ) ( '.dd(%i,%i)' , ( 一个 , b , 预期的 ) => {
预计 ( 一个 + b ) 托比 ( 预期的 ) ;
} ) ;
测试 ( '不会被跑' , ( ) => {
预计 ( 1 / 0 ) 托比 ( ) ;
} ) ;

test.only.each``(姓名,fn)#

测试 只要 每个
a |B |预期的
$ { 1 } | $ { 1 } | $ { 2 }
$ { 1 } | $ { 2 } | $ { 3. }
$ { 2 } | $ { 1 } | $ { 3. }
( '返回$ a预期$ a增加$ b' , ( { 一个 , b , 预期的 } ) => {
预计 ( 一个 + b ) 托比 ( 预期的 ) ;
} ) ;
测试 ( '不会被跑' , ( ) => {
预计 ( 1 / 0 ) 托比 ( ) ;
} ) ;

test.skip.(名称,fn)#

也在别名下:it.skip(名称,fn),xit(名称,fn), 和xtest(名称,fn)

在código的一个大基地里,我们经常会遇到一些暂时的海藻。如果您想跳过运行此测试,但又不想删除此代码,则可以使用test.skip.指定一些跳过的测试。

Por Ejealto,Dimamos Que Se Tuviera Estas Pruebas:

测试 ( “下雨了” , ( ) => {
预计 ( inchesOfRain ( ) ) tobegreathan ( 0 ) ;
} ) ;
测试 跳过 ( '它没有下雪' , ( ) => {
预计 ( inchesofsnow. ( ) ) 托比 ( 0 ) ;
} ) ;

Sóloseejecutaríalaprueba“它是raning”,pues seAgregótest.skip.La Otra prueba。

您可以评论测试,但通常有点更好test.skip.因为它将保持缩进和语法突出显示。

test.skip.each(表)(姓名,fn)#

也在别名下:it.skip.each(表)(名称、fn),xit.each(表)(名称,fn),xtest.each(表)(名称、fn),it.skip。每个”表格”(名称,fn),——xit。每个”表格”(名称,fn)xtest.each``(姓名,fn)

使用test.skip.each.如果要停止运行数据驱动测试的集合。

test.skip.each.有两个API:

test.skip.each(表)(姓名,fn)#

测试 跳过 每个 ( (
( 1 , 1 , 2 ] ,
( 1 , 2 , 3. ] ,
( 2 , 1 , 3. ] ,
] ) ( '.dd(%i,%i)' , ( 一个 , b , 预期的 ) => {
预计 ( 一个 + b ) 托比 ( 预期的 ) ; //不会被跑
} ) ;
测试 ( 会跑的 , ( ) => {
预计 ( 1 / 0 ) 托比 ( ) ;
} ) ;

test.skip.each``(姓名,fn)#

测试 跳过 每个
a |B |预期的
$ { 1 } | $ { 1 } | $ { 2 }
$ { 1 } | $ { 2 } | $ { 3. }
$ { 2 } | $ { 1 } | $ { 3. }
( '返回$ a预期$ a增加$ b' , ( { 一个 , b , 预期的 } ) => {
预计 ( 一个 + b ) 托比 ( 预期的 ) ; //不会被跑
} ) ;
测试 ( 会跑的 , ( ) => {
预计 ( 1 / 0 ) 托比 ( ) ;
} ) ;

test.todo(姓名)#

也在别名下:它.Todo(姓名)

使用test.todo.当您计划编写测试时。这些测试将在结尾处的摘要输出中突出显示,以便您知道还需要做多少测试。

请注意:如果你提供了一个测试回调函数,那么test.todo.将抛出一个错误。如果您已经实现了测试,但是测试被破坏了,您不想让它运行,那么就使用它test.skip.代替。

API.#

  • 名称:字符串测试计划的标题。

例子:

const 添加 = ( 一个 , b ) => 一个 + b ;
测试 待办事项 ( " add应该是有关联的" ) ;