Jestにおけるセットアップヘルパー
はじめに
Jestのドキュメントを読んでまとめていきます。
ところどころ気になった部分を調べて補足したり解釈を入れています。
https://jestjs.io/ja/docs/setup-teardown
テストを繰り返し行うセットアップ
テストで繰り返し行う必要がある場合は、beforeEach
と afterEach
フックを使用します。
beforeEach
と afterEach
は各テストの前後に実行される処理です。
データベースの初期化やクリーンアップなど、テスト間で繰り返し行う必要がある作業に使用します。
ドキュメントの例をそのまま利用します。
いくつかのテストが City テーブルに関係するテストを実行するとする場合のコードです。
beforeEach(() => { initializeCityDatabase(); }); afterEach(() => { clearCityDatabase(); }); test('city database has Vienna', () => { expect(isCity('Vienna')).toBeTruthy(); }); test('city database has San Juan', () => { expect(isCity('San Juan')).toBeTruthy(); });
上記のコード例では、Cityのデータベースに対して2つのテストを実行しています。
beforeEachフック
beforeEach
フックを使用することで、各テストが実行される前にデータベースを一貫した状態に初期化しています。
この初期化によって、テスト間の干渉を避け、独立したテスト実行を保証します。
afterEachフック
同様に、afterEach
フックによって、各テストの実行後にデータベースをクリアしています。
これによって、後続のテストに影響を与えず、リソースを適切に解放することができます。
このパターンは、テストの安定性と予測可能性を高める助けとなります。
また、同じセットアップとクリーンアップロジックを複数のテストで再利用することで、コードの重複を減らし、メンテナンスを容易にします。
最終的に、beforeEach
とafterEach
の使用は、テストコードの構造を整理し、より読みやすくする助けとなります。
テストが増えて複雑になるにつれて、このような構造化がプロジェクトの品質と開発速度の向上につながります。
おしまい
コメント
本記事の内容は以上になります!
プログラミングスクールのご紹介 (卒業生より)
お世話になったプログラミングスクールであるRUNTEQです♪
こちらのリンクを経由すると1万円引きになります。
RUNTEQを通じて開発学習の末、受託開発企業をご紹介いただき、現在も双方とご縁があります。
もし、興味がありましたらお気軽にコメントか、TwitterのDMでお声掛けください。