Jestを使用して例外がスローされなかったことをテストする方法 - JavaScript


  1. try-catch文を使用する方法:

    test('例外がスローされないことをテストする', () => {
    try {
    // テスト対象のコード
    // 例外がスローされる可能性のある処理
    } catch (error) {
    expect(error).toBeUndefined(); // エラーがスローされた場合は失敗
    }
    });

    この方法では、テスト対象のコードをtryブロック内に配置し、catchブロックで例外がスローされた場合にテストが失敗するようにします。

  2. expect().toThrow()を使用する方法:

    test('例外がスローされないことをテストする', () => {
    expect(() => {
    // テスト対象のコード
    // 例外がスローされる可能性のある処理
    }).not.toThrow();
    });

    この方法では、テスト対象のコードを無名関数としてexpect()の引数に渡し、toThrow()マッチャーを使用して例外がスローされないことをテストします。notを使用することで、例外がスローされた場合にテストが失敗するようになります。

  3. async/awaitを使用する方法:

    test('例外がスローされないことをテストする', async () => {
    await expect(async () => {
    // テスト対象の非同期のコード
    // 例外がスローされる可能性のある処理
    }).rejects.toThrow();
    });

    この方法は非同期のコードをテストする場合に使用します。async/awaitキーワードを使用して非同期のテスト関数を定義し、rejectsとtoThrow()マッチャーを使用して例外がスローされないことをテストします。

これらの方法を使用して、Jestを使って例外がスローされなかったことをテストすることができます。適切な方法を選択し、テストコードに組み込んでください。