Yanonoblog!

こつこつと

Jest - ワンタイムセットアップ

はじめに

Jestのドキュメントを読んでまとめていきます。

ところどころ気になった部分を調べて補足したり解釈を入れています。

https://jestjs.io/ja/docs/setup-teardown

ワンタイムセットアップとは

テストにおけるワンタイムセットアップ(One-time setup)とは、テストスイートの実行中に一度だけ実行される初期化や設定のことを指します。

複数のテストケース間で共有される共通のリソースや設定が必要な場合に使用されることが多いです。

ワンタイムセットアップはテストスイートの最初に一度だけ実行されるため、テストの実行速度の向上やリソースの効率的な利用などの利点があります。

Jestでのワンタイムセットアップ例

下記にJest テスティングフレームワークでのワンタイムセットアップの例を示しています。

// beforeAllフックは、テストスイート内のすべてのテストの前に一度だけ実行される
// この例では、都市データベースの初期化関数initializeCityDatabase()がPromiseを返すと仮定している
beforeAll(() => {
  return initializeCityDatabase(); // データベースの初期化
});

// afterAllフックは、テストスイート内のすべてのテストの後に一度だけ実行される
// この例では、都市データベースのクリア関数clearCityDatabase()がPromiseを返すと仮定している
afterAll(() => {
  return clearCityDatabase(); // データベースのクリア
});

// 都市データベースが正しく機能していることを確認する
test('city database has Vienna', () => {
  expect(isCity('Vienna')).toBeTruthy(); // ウィーンがデータベースに存在することを期待
});

test('city database has San Juan', () => {
  expect(isCity('San Juan')).toBeTruthy(); // サンフアンがデータベースに存在することを期待
});
ポイント

beforeAllafterAllがテストスイート全体に対して一度だけ実行されるため、初期化とクリーンアップが1回ずつしか行われないことです。

テストの実行速度を向上させることができるので、高コストな操作が必要な場合やデータベースをテスト間で再利用できる場合に特に便利です。

おしまい

コメント

本記事の内容は以上になります!


プログラミングスクールのご紹介 (卒業生より)

お世話になったプログラミングスクールであるRUNTEQです♪

https://runteq.jp/r/ohtFwbjW

こちらのリンクを経由すると1万円引きになります。

RUNTEQを通じて開発学習の末、受託開発企業をご紹介いただき、現在も双方とご縁があります。

もし、興味がありましたらお気軽にコメントか、TwitterのDMでお声掛けください。

https://twitter.com/outputky