JUnit 予期される例外テスト: @Test(expected)

JUnit 例外をトレースする機能と、コードが予期される例外をスローしているかどうかを確認する機能を提供します。

Junit4は例外テストのための簡単で読みやすい方法を提供しており、

  • @test アノテーションのオプションのパラメータ (予期される) と
  • 情報を追跡するには「fail()」を使用できます

一方、 テスト 例外の場合は、そのオプションのパラメータで例外クラスを提供していることを確認する必要があります。 @test アノテーション 同じです。 これは、メソッドからの例外を期待しているためです。 単体テストそうでなければ、 JUnit テストは失敗するでしょう。

Example@Test(expected=IllegalArgumentException.class)

「expected」パラメータを使用すると、テストがスローする例外名を指定できます。 上の例では「」を使用しています。IllegalArgumentException” これは、開発者が許可されていない引数を使用した場合にテストによってスローされます。

@test(expected) を使用した例

を作成して例外テストを理解しましょう。 Java 例外をスローするメソッドを持つクラス。これをテストクラスで処理してテストします。 JUnitMessage.java には、ユーザーが受け取った入力に基づいて単純に数学演算を実行するメソッドがあります。不正な引数が入力されると、「ArithmeticException」がスローされます。以下を参照してください。

@Testを使用した例

package guru99.junit;

public class JUnitMessage{

	private String message;

	public JUnitMessage(String message) {
		this.message = message;
	}

public void printMessage(){

	System.out.println(message); 
	int divide=1/0;

}

public String printHiMessage(){ 

	message="Hi!" + message;
	
	System.out.println(message);

	return message;
}

}

コードの説明:

  • コード行 7: フィールド初期化を使用してパラメーター化されたコンストラクターを作成します。
  • コード行 11 ~ 14: 数学演算のためのメソッドを作成します。
  • コード行 18: メッセージを出力する別のメソッドを作成します。
  • コード行 20: メッセージを出力するための新しい文字列を作成します。
  • コード行 21: 20 行目で作成された新しいメッセージを出力します。

上記の Java クラスのテストクラスを作成して、例外を確認しましょう。

上記の Java クラスからスローされる例外 (ここでは ArithmeticException) を単体テストするには、以下のテスト クラスを参照してください。

AirthematicTest.java

エアセマティックテスト。Java

package guru99.junit;

import static org.junit.Assert.assertEquals;

import org.junit.Test;

public class AirthematicTest {

	public String message = "Saurabh";
	
	JUnitMessage junitMessage = new JUnitMessage(message);
	
	@Test(expected = ArithmeticException.class)
	public void testJUnitMessage(){

		System.out.println("Junit Message is printing ");
		junitMessage.printMessage();

	}

	@Test
	public void testJUnitHiMessage(){ 
		message="Hi!" + message;
		System.out.println("Junit Message is printing ");
		assertEquals(message, junitMessage.printMessage());
	
	}
}

コードの説明:

  • コード行 13: @Test アノテーションを使用してテストを作成します。上記のクラス メソッドを実行すると、数学演算が呼び出されます。ここでは算術例外が予想されるため、@Test でパラメーターとしてリストします。
  • コード行 17: printMessage() の呼び出し JUnitメッセージ.java
  • コード行 18: HI メッセージを出力する別のメソッドを作成します。

このテスト クラスを実行すると、定義された各パラメーターを使用してテスト メソッドが実行されます。 上記の例では、テスト メソッドが XNUMX 回実行されます。

実行して結果を確認してみましょう。 実行するテスト ランナー クラスは以下を参照してください。 JunitTestExample.java

出力:

以下に示すように、失敗の痕跡がなく、テストが成功したことを示す出力を次に示します。

エアセマティックテスト。Java 出力

まとめ

  • 例外テストは、で導入された特別な機能です。 JUnit4. このチュートリアルでは、例外をテストする方法を学びました。 JUnit @test を使用する(例外)
  • Junitは例外をトレースする機能と、コードが例外をスローしているかどうかを確認する機能を提供します。
  • 例外テストの場合は、次を使用できます
    • @test アノテーションのオプションのパラメータ (予期される) と
    • 情報を追跡するには「fail()」を使用できます