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

全局变量

在测试文件中,Jest将这些方法和对象都放到全局环境中。您不必需要或导入任何东西来使用它们。但是,如果您喜欢显式导入,也可以这样做从'@jest/globals'中导入{describe, expect, test}

方法#


参考#

毕竟(fn,超时)#

在此文件中的所有测试都完成后运行一个函数。如果函数返回一个承诺或一个生成器,Jest将等待那个承诺解析后再继续。

您还可以提供超时(以毫秒为单位)用于指定中止前等待的时间。备注:默认超时时间为5秒。

如果您想清除跨测试共享的某些全局设置状态,这通常是有用的。

例如:

常量 globalDatabase = makeGlobalDatabase ( ) ;
函数 cleanUpDatabase ( db ) {
db 清理 ( ) ;
}
毕竟 ( ( ) = > {
cleanUpDatabase ( globalDatabase ) ;
} ) ;
测试 ( “能找到的东西” , ( ) = > {
返回 globalDatabase 找到 ( “东西” , { } , 结果 = > {
预计 ( 结果 长度 ) toBeGreaterThan ( 0 ) ;
} ) ;
} ) ;
测试 ( '可以插入某物' , ( ) = > {
返回 globalDatabase 插入 ( “东西” , 使 ( ) , 响应 = > {
预计 ( 响应 成功 ) toBeTruthy ( ) ;
} ) ;
} ) ;

在这里,毕竟确保cleanUpDatabase在所有测试运行后调用。

如果毕竟是在一个描述块,它在描述块的末尾运行。

如果希望在每个测试之后而不是在所有测试之后运行一些清理,请使用afterEach代替。

afterEach (fn,超时)#

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

您还可以提供超时(以毫秒为单位)用于指定中止前等待的时间。备注:默认超时时间为5秒。

如果您想清除每个测试创建的一些临时状态,这通常是有用的。

例如:

常量 globalDatabase = makeGlobalDatabase ( ) ;
函数 cleanUpDatabase ( db ) {
db 清理 ( ) ;
}
afterEach ( ( ) = > {
cleanUpDatabase ( globalDatabase ) ;
} ) ;
测试 ( “能找到的东西” , ( ) = > {
返回 globalDatabase 找到 ( “东西” , { } , 结果 = > {
预计 ( 结果 长度 ) toBeGreaterThan ( 0 ) ;
} ) ;
} ) ;
测试 ( '可以插入某物' , ( ) = > {
返回 globalDatabase 插入 ( “东西” , 使 ( ) , 响应 = > {
预计 ( 响应 成功 ) toBeTruthy ( ) ;
} ) ;
} ) ;

在这里,afterEach确保cleanUpDatabase在每个测试运行后调用。

如果afterEach是在一个描述块,它只在此描述块内的测试之后运行。

如果希望在所有测试运行后只运行一次清理,请使用毕竟代替。

beforeAll (fn,超时)#

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

您还可以提供超时(以毫秒为单位)用于指定中止前等待的时间。备注:默认超时时间为5秒。

如果您希望设置一些将被许多测试使用的全局状态,这通常是有用的。

例如:

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

在这里,beforeAll确保在运行测试之前设置数据库。如果setup是同步的,那么您可以不使用beforeAll。关键是Jest将等待一个承诺来解决,因此您也可以进行异步设置。

如果beforeAll是在一个描述块,它在描述块的开始处运行。

如果希望在每个测试之前运行某些内容,而不是在运行任何测试之前,请使用beforeEach代替。

beforeEach (fn,超时)#

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

您还可以提供超时(以毫秒为单位)用于指定中止前等待的时间。备注:默认超时时间为5秒。

如果您想重置一些将被许多测试使用的全局状态,这通常是有用的。

例如:

常量 globalDatabase = makeGlobalDatabase ( ) ;
beforeEach ( ( ) = > {
//清除数据库并添加一些测试数据。
// Jest将在运行测试之前等待此承诺解决。
返回 globalDatabase 清晰的 ( ) 然后 ( ( ) = > {
返回 globalDatabase 插入 ( { testData : “foo” } ) ;
} ) ;
} ) ;
测试 ( “能找到的东西” , ( ) = > {
返回 globalDatabase 找到 ( “东西” , { } , 结果 = > {
预计 ( 结果 长度 ) toBeGreaterThan ( 0 ) ;
} ) ;
} ) ;
测试 ( '可以插入某物' , ( ) = > {
返回 globalDatabase 插入 ( “东西” , 使 ( ) , 响应 = > {
预计 ( 响应 成功 ) toBeTruthy ( ) ;
} ) ;
} ) ;

在这里,beforeEach确保为每个测试重置数据库。

如果beforeEach是在一个描述块,它为描述块中的每个测试运行。

如果您只需要在运行任何测试之前运行一些设置代码一次,请使用beforeAll代替。

描述(名称、fn)#

描述(名称、fn)创建将几个相关测试分组在一起的块。例如,如果你有myBeverage应该是美味而不是酸的东西,你可以用以下方法来测试:

常量 myBeverage = {
美味的 : 真正的 ,
: ,
} ;
描述 ( “我的饮料” , ( ) = > {
测试 ( “很好吃” , ( ) = > {
预计 ( myBeverage 美味的 ) toBeTruthy ( ) ;
} ) ;
测试 ( “不是酸” , ( ) = > {
预计 ( myBeverage ) toBeFalsy ( ) ;
} ) ;
} ) ;

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

你也可以嵌套描述块,如果你有一个测试层次结构:

常量 binaryStringToNumber = binString = > {
如果 ( ! / ^[01] +美元 / 测试 ( binString ) ) {
CustomError ( “不是二进制数。” ) ;
}
返回 方法用于 ( binString , 2 ) ;
} ;
描述 ( “binaryStringToNumber” , ( ) = > {
描述 ( '给定一个无效的二进制字符串' , ( ) = > {
测试 ( '由非数字组成抛出CustomError' , ( ) = > {
预计 ( ( ) = > binaryStringToNumber ( “abc” ) ) toThrowError ( CustomError ) ;
} ) ;
测试 ( '带有额外空格抛出CustomError' , ( ) = > {
预计 ( ( ) = > binaryStringToNumber ( “100” ) ) toThrowError ( CustomError ) ;
} ) ;
} ) ;
描述 ( '给定一个有效的二进制字符串' , ( ) = > {
测试 ( '返回正确的数字' , ( ) = > {
预计 ( binaryStringToNumber ( “100” ) ) 托比 ( 4 ) ;
} ) ;
} ) ;
} ) ;

describe.each(表)(名称、fn超时)#

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

describe.each提供了两个api:

1.describe.each(表)(名称、fn超时)#

  • 表格:数组对象中传递的参数fn为每一行。
    • 请注意如果你传入一个原语的1D数组,它将在内部被映射到一个表,即。[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 ) toBeGreaterThan ( 预期 ) ;
} ) ;
测试 ( 返回值不能小于 $ { 预期 } , ( ) = > {
预计 ( 一个 + b ) toBeLessThan ( 预期 ) ;
} ) ;
} ) ;

2.describe.each”表格”(的名字,fn,超时)#

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

例子:

描述 每一个
A | b |
$ { 1 } | $ { 1 } | $ { 2 }
$ { 1 } | $ { 2 } | $ { 3. }
$ { 2 } | $ { 1 } | $ { 3. }
( “a + b美元” , ( { 一个 , b , 预期 } ) = > {
测试 ( 返回 $ { 预期 } , ( ) = > {
预计 ( 一个 + b ) 托比 ( 预期 ) ;
} ) ;
测试 ( 返回值不能大于 $ { 预期 } , ( ) = > {
预计 ( 一个 + b ) toBeGreaterThan ( 预期 ) ;
} ) ;
测试 ( 返回值不能小于 $ { 预期 } , ( ) = > {
预计 ( 一个 + b ) toBeLessThan ( 预期 ) ;
} ) ;
} ) ;

describe.only(的名字,fn)#

也在别名下:fdescribe(名称、fn)

您可以使用describe.only如果你只想运行一个描述块:

描述 只有 ( “我的饮料” , ( ) = > {
测试 ( “很好吃” , ( ) = > {
预计 ( myBeverage 美味的 ) toBeTruthy ( ) ;
} ) ;
测试 ( “不是酸” , ( ) = > {
预计 ( myBeverage ) toBeFalsy ( ) ;
} ) ;
} ) ;
描述 ( “我的其他饮料” , ( ) = > {
/ /……将被忽略
} ) ;

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

同样在化名下:fdescribe.each(表)(名称、fn)fdescribe。每一个”表格”(的名字,fn)

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

describe.only.each提供了两个api:

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

描述 只有 每一个 ( (
( 1 , 1 , 2 ] ,
( 1 , 2 , 3. ] ,
( 2 , 1 , 3. ] ,
] ) ( ”。一个dd(%i, %i)' , ( 一个 , b , 预期 ) = > {
测试 ( 返回 $ { 预期 } , ( ) = > {
预计 ( 一个 + b ) 托比 ( 预期 ) ;
} ) ;
} ) ;
测试 ( '将不运行' , ( ) = > {
预计 ( 1 / 0 ) 托比 ( ) ;
} ) ;

describe.only.each”表格”(的名字,fn)#

描述 只有 每一个
A | b |
$ { 1 } | $ { 1 } | $ { 2 }
$ { 1 } | $ { 2 } | $ { 3. }
$ { 2 } | $ { 1 } | $ { 3. }
( 当$a被添加到$b时,返回$expected , ( { 一个 , b , 预期 } ) = > {
测试 ( “通过” , ( ) = > {
预计 ( 一个 + b ) 托比 ( 预期 ) ;
} ) ;
} ) ;
测试 ( '将不运行' , ( ) = > {
预计 ( 1 / 0 ) 托比 ( ) ;
} ) ;

describe.skip(的名字,fn)#

也在别名下:xdescribe(名称、fn)

您可以使用describe.skip如果你不想运行一个特定的描述块:

描述 ( “我的饮料” , ( ) = > {
测试 ( “很好吃” , ( ) = > {
预计 ( myBeverage 美味的 ) toBeTruthy ( ) ;
} ) ;
测试 ( “不是酸” , ( ) = > {
预计 ( myBeverage ) toBeFalsy ( ) ;
} ) ;
} ) ;
描述 跳过 ( “我的其他饮料” , ( ) = > {
/ /……将被忽略
} ) ;

使用describe.skip通常是临时注释掉测试块的更干净的替代方法。

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被添加到$b时,返回$expected , ( { 一个 , b , 预期 } ) = > {
测试 ( '将不运行' , ( ) = > {
预计 ( 一个 + b ) 托比 ( 预期 ) ; //将不会运行
} ) ;
} ) ;
测试 ( 会跑的 , ( ) = > {
预计 ( 1 / 0 ) 托比 ( ) ;
} ) ;

测试(名称、fn超时)#

也在别名下:(名称、fn超时)

您在测试文件中所需要的是测试方法,该方法运行测试。例如,假设有一个函数inchesOfRain ()它应该是零。你的整个测试可以是:

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

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

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

举个例子fetchBeverageList ()返回一个承诺,该承诺被假定解析为具有柠檬在里面。你可以用以下方法进行测试:

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

即使打电话给测试将立即返回,测试不会完成,直到承诺解决。

test.concurrent(的名字,fn,超时)#

也在别名下:它。并发(名称、fn超时)

使用test.concurrent如果您希望测试并发运行。

注意:test.concurrent被认为是实验性的,明白吗在这里关于丢失的功能和其他问题的详细信息

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

test.concurrent('addition of 2 numbers', async () => {
期望(5 + 3).toBe (8);
});
test.concurrent('subtraction 2 numbers', async () => {
期望(5 - 3).toBe (2);
});

注意:使用maxConcurrency在配置中防止Jest同时执行超过指定数量的测试

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

也在别名下:it.concurrent.each(表)(名称、fn超时)

使用test.concurrent.each如果你用不同的数据重复相同的测试。test.each允许您编写测试一次并传入数据,测试都是异步运行的。

test.concurrent.each提供了两个api:

1.test.concurrent.each(表)(名称、fn超时)#

  • 表格:数组数组的参数被传递到测试中fn为每一行。
    • 请注意如果你传入一个原语的1D数组,它将在内部被映射到一个表,即。[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.concurrent.each”表格”(的名字,fn,超时)#

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

例子:

测试 并发 每一个
A | b |
$ { 1 } | $ { 1 } | $ { 2 }
$ { 1 } | $ { 2 } | $ { 3. }
$ { 2 } | $ { 1 } | $ { 3. }
( 当$a被添加到$b时,返回$expected , 异步 ( { 一个 , b , 预期 } ) = > {
预计 ( 一个 + b ) 托比 ( 预期 ) ;
} ) ;

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

也在别名下:it.concurrent.only.each(表)(名称、fn)

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

test.concurrent.only.each提供了两个api:

test.concurrent.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被添加到$b时,返回$expected , 异步 ( { 一个 , b , 预期 } ) = > {
预计 ( 一个 + b ) 托比 ( 预期 ) ;
} ) ;
测试 ( '将不运行' , ( ) = > {
预计 ( 1 / 0 ) 托比 ( ) ;
} ) ;

test.concurrent.skip.each(表)(名称、fn)#

也在别名下:it.concurrent.skip.each(表)(名称、fn)

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

test.concurrent.skip.each提供了两个api:

test.concurrent.skip.each(表)(名称、fn)#

测试 并发 跳过 每一个 ( (
( 1 , 1 , 2 ] ,
( 1 , 2 , 3. ] ,
( 2 , 1 , 3. ] ,
] ) ( ”。一个dd(%i, %i)' , 异步 ( 一个 , b , 预期 ) = > {
预计 ( 一个 + b ) 托比 ( 预期 ) ; //将不会运行
} ) ;
测试 ( 会跑的 , ( ) = > {
预计 ( 1 / 0 ) 托比 ( ) ;
} ) ;

test.concurrent.skip.each”表格”(的名字,fn)#

测试 并发 跳过 每一个
A | b |
$ { 1 } | $ { 1 } | $ { 2 }
$ { 1 } | $ { 2 } | $ { 3. }
$ { 2 } | $ { 1 } | $ { 3. }
( 当$a被添加到$b时,返回$expected , 异步 ( { 一个 , b , 预期 } ) = > {
预计 ( 一个 + b ) 托比 ( 预期 ) ; //将不会运行
} ) ;
测试 ( 会跑的 , ( ) = > {
预计 ( 1 / 0 ) 托比 ( ) ;
} ) ;

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

也在别名下:一般(表)(名称、fn)它。每个'table”(名称、fn)

使用test.each如果你用不同的数据重复相同的测试。test.each允许您编写一次测试并传入数据。

test.each提供了两个api:

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

  • 表格:数组数组的参数被传递到测试中fn为每一行。
    • 请注意如果你传入一个原语的1D数组,它将在内部被映射到一个表,即。[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}语法。
  • 的名字:字符串题名,使用$变量将测试数据从标记的模板表达式注入到测试标题中。
    • 要注入嵌套对象值,使用你可以提供一个keyPath,即。variable.path.to.value美元
  • fn:函数要运行的测试,这是将接收测试数据对象的函数。
  • 您还可以提供超时(以毫秒为单位)用于指定在中止每一行之前等待多长时间。备注:默认超时时间为5秒。

例子:

测试 每一个
A | b |
$ { 1 } | $ { 1 } | $ { 2 }
$ { 1 } | $ { 2 } | $ { 3. }
$ { 2 } | $ { 1 } | $ { 3. }
( 当$a被添加到$b时,返回$expected , ( { 一个 , b , 预期 } ) = > {
预计 ( 一个 + b ) 托比 ( 预期 ) ;
} ) ;

test.only(的名字,fn,超时)#

同样在化名下:它。(名称、fn超时),fit(名称、fn超时)

在调试大型测试文件时,通常只需要运行测试的子集。您可以使用只有指定要在该测试文件中仅运行哪些测试。

您还可以提供超时(以毫秒为单位)用于指定中止前等待的时间。备注:默认超时时间为5秒。

例如,假设您进行了以下测试:

测试 只有 ( “下雨了” , ( ) = > {
预计 ( inchesOfRain ( ) ) toBeGreaterThan ( 0 ) ;
} ) ;
测试 ( “没有下雪” , ( ) = > {
预计 ( inchesOfSnow ( ) ) 托比 ( 0 ) ;
} ) ;

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

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

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

同样在化名下:it.only.each(表)(名称、fn),fit.each(表)(名称、fn),只有。每一个”表格”(的名字,fn)健康。每一个”表格”(的名字,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被添加到$b时,返回$expected , ( { 一个 , b , 预期 } ) = > {
预计 ( 一个 + b ) 托比 ( 预期 ) ;
} ) ;
测试 ( '将不运行' , ( ) = > {
预计 ( 1 / 0 ) 托比 ( ) ;
} ) ;

test.skip(的名字,fn)#

同样在化名下:它。跳过(名称、fn),——xit(名称、fn),xtest(名称、fn)

当您维护一个大型代码库时,您可能有时会发现某个测试由于某种原因而暂时中断。如果您想跳过运行此测试,但又不想删除此代码,则可以使用test.skip指定要跳过的测试。

例如,假设您进行了以下测试:

测试 ( “下雨了” , ( ) = > {
预计 ( inchesOfRain ( ) ) toBeGreaterThan ( 0 ) ;
} ) ;
测试 跳过 ( “没有下雪” , ( ) = > {
预计 ( inchesOfSnow ( ) ) 托比 ( 0 ) ;
} ) ;

只有“下雨了”测试将运行,因为其他测试是与test.skip

您可以对测试进行注释,但通常使用它会更好一些test.skip因为它将维护缩进和语法高亮显示。

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

同样在化名下:it.skip.each(表)(名称、fn),xit.each(表)(名称、fn),xtest.each(表)(名称、fn),it.skip。每一个”表格”(的名字,fn),——xit。每一个”表格”(的名字,fn)xtest。每一个”表格”(的名字,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被添加到$b时,返回$expected , ( { 一个 , b , 预期 } ) = > {
预计 ( 一个 + b ) 托比 ( 预期 ) ; //将不会运行
} ) ;
测试 ( 会跑的 , ( ) = > {
预计 ( 1 / 0 ) 托比 ( ) ;
} ) ;

test.todo(名字)#

也在别名下:it.todo(名字)

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

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

API#

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

例子:

常量 添加 = ( 一个 , b ) = > 一个 + b ;
测试 待办事项 ( " add应该是有关联的" ) ;
最后一次更新在通过