Vitestは、JavaScriptおよびTypeScriptのためのモダンなテストランナーおよびアサーションライブラリです。VitestはJestにインスパイアされているため、describe
, it
, beforeAll
などの関数の使い方はJestと非常に似ています。これらの関数を使用してテストスイートを構成し、個々のテストケースを定義し、テストの実行前に必要な準備を行います。
基本的な構造
-
describe
: テストスイートをグループ化するために使用されます。関連するテストケースを一つのブロック内にまとめることができます。 -
it
/test
: 個々のテストケースを定義します。テストしたい具体的な動作や機能に対して記述します。一般的に、it と test は同じ目的で使用されますが、テストケースを記述する際の文脈によって選択します。 -
beforeAll
: すべてのテストケースが実行される前に一度だけ実行される関数です。テストに必要な初期化処理などを行います。 -
afterAll
: すべてのテストケースの実行が完了した後に一度だけ実行される関数です。テストの後片付けなどを行います。 -
beforeEach
/afterEach
: それぞれのテストケースが実行される前後に毎回実行される関数です。
サンプルコード
以下にVitestを使用したテストコードの例を示します。
import { describe, it, expect, beforeAll, afterAll } from 'vitest';
describe('数値のテスト', () => {
beforeAll(() => {
// すべてのテストケースの前に実行される処理
console.log('テスト開始前の初期化');
});
afterAll(() => {
// すべてのテストケースの後に実行される処理
console.log('テスト完了後の後片付け');
});
it('数値の等価性テスト', () => {
expect(2 + 2).toBe(4);
});
it('数値の不等価性テスト', () => {
expect(2 + 2).not.toBe(5);
});
});
この例では、describe
ブロックを使用して、数値に関するテストケースをグループ化しています。it
関数は個々のテストケースを定義し、expect
とアサーションメソッド(例えばtoBe
やnot.toBe
)を使用して期待される結果を検証します。beforeAll
とafterAll
は、テストスイートの開始前後に実行される処理を定義しています。