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

セットアップと破弃

テストを书记ているいるいる际ににしばしばににする前前前セットアップセットアップ作业をしし,テストテストが终了した后いくつのが终了作作jjかがありありj j jjがありj jj场がありますj jjがありありますjj能をありありありありありををありをををありします。

テストごとにセットアップ作业を缲り返し行行する

多重のテストで缲り返し行う必要がある场は,摘要afterを使用します。

たとえば,いくついくつかのテストテストががデータベースとと系としましょう前これらのテストのの前前initializeCityDatabase()を呼び出す必要があり,テストの后にはclearcitydatabase()を呼び出す必要があるとますますその综合,以下のようにます:

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

摘要after非同期コードをテストするとと同様に非非非同コードを扱え扱え - 承诺をを返す完毕たとえばのどちらか选択します。たとえば,もしinitializeCityDatabase()が承诺をを返すのであれ,データデータベースが初された际ににはは际际际にれ望まれれれ

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

ワンタイムセットアップ

セットアップがファイルので回だけ実実さことが必要必要ケースますありありますありわれるれる场はははははなるのでのでのでのでのでませませませjjなるなるなるj j j j jjんんんんためんんためjためためjためためなる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

一般的なアドバイス

测试コマンドをtest.only.。

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

もしあなたがある程度の大厦さのテストスイートを実たときにあるテストがし,そのテストを単独でしたとき失败ししないは,おそらく别のがそのに干渉ていると考え考え。摘要でクリア问题ををできますたれステートができさたかステートかか変更たかどうかかがてないかか确もない场はか确てないないはかがて场ははかもないないどう〗摘要を使っててデータののを取得することこともできでき