JUnit 単体テスト フレームワークには、例外をテストするための 3 つのメソッドが用意されています。 1. 予想される例外のアサーション。スローされることが予想される例外の種類を指定できます。 2. 例外メッセージ アサーション。例外に予想される例外があるかどうかを確認できます。メッセージ; 3. 例外原因アサーション。例外の根本原因を検証するために使用されます。
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 サイトの他の関連記事を参照してください。