ホームページ >Java >&#&チュートリアル >JUnit 単体テスト フレームワーク: 例外をテストする最良の方法

JUnit 単体テスト フレームワーク: 例外をテストする最良の方法

WBOY
WBOYオリジナル
2024-04-18 14:42:021185ブラウズ

JUnit 単体テスト フレームワークには、例外をテストするための 3 つのメソッドが用意されています。 1. 予想される例外のアサーション。スローされることが予想される例外の種類を指定できます。 2. 例外メッセージ アサーション。例外に予想される例外があるかどうかを確認できます。メッセージ; 3. 例外原因アサーション。例外の根本原因を検証するために使用されます。

JUnit 単体テスト フレームワーク: 例外をテストする最良の方法

JUnit 単体テスト フレームワーク: 例外をテストする最良の方法

JUnit は、Java 開発者によって広く使用されている単体テスト フレームワークです。予想されるテスト結果を検証するためのさまざまなアサーション メソッドが提供されます。例外をテストするために、JUnit は一連の特殊なメソッドを提供します。

1. 予期される例外アサーション

@Test(expected = ExceptionClass.class) 注釈を使用すると、スローされる特定の例外を指定できます。テストメソッドのタイプ。予期した例外がスローされない場合、テストは失敗します。

@Test(expected = NullPointerException.class)
public void testNullPointerException() {
    String str = null;
    str.toUpperCase();
}

2. 例外メッセージ アサーション

assertThrowWithMessage メソッドを使用すると、例外が発生したかどうかを確認できるだけでなく、例外が発生したかどうかも確認できます。そのメッセージは予想どおりでした。

@Test
public void testExceptionMessage() {
    Exception exception = assertThrows(Exception.class, () -> {
        throw new Exception("Custom Exception");
    });
    assertEquals("Custom Exception", exception.getMessage());
}

3. 例外原因のアサーション

assertCause メソッドを使用すると、例外の根本原因 (存在する場合) を確認できます。

@Test
public void testExceptionCause() {
    Exception cause = new Exception("Cause Exception");
    Exception exception = new Exception("Actual Exception", cause);
    Exception actualCause = assertThrows(Exception.class, () -> { throw exception; }).getCause();
    assertEquals(cause, actualCause);
}

実際的なケース

次の例では、JUnit を使用して、ArithmeticException 例外をスローする可能性のあるメソッドをテストします:

public class Calculator {

    public int divide(int numerator, int denominator) {
        if (denominator == 0) {
            throw new ArithmeticException("Cannot divide by zero");
        }
        return numerator / denominator;
    }
}

@ExtendWith(SpringExtension.class)
public class CalculatorTest {

    @Test(expected = ArithmeticException.class)
    public void testDivideByZero() {
        Calculator calculator = new Calculator();
        calculator.divide(10, 0);
    }
}

ヒント

  • 例外をテストするときは、明示的な例外タイプを使用することが重要です。
  • 例外メッセージ アサーションにより、例外に予期されるエラー メッセージ テキストが含まれることが保証されます。
  • 例外原因アサーションは、複雑な例外階層を検証するのに役立ちます。

以上がJUnit 単体テスト フレームワーク: 例外をテストする最良の方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。