創造する JUnit テストスイートと例: @RunWith @SuiteClasses

Junit では、テスト スイートを使用すると、複数のクラスのすべてのテスト ケースを 1 か所に集約し、まとめて実行できます。

スイート テストを実行するには、以下のアノテーションを使用してクラスにアノテーションを付ける必要があります。

  1. @Runwith(スイート.クラス)
  2. @SuiteClasses(test1.class,test2.class……) または @Suite.SuiteClasses ({test1.class, test2.class……})

上記のアノテーションを使用すると、スイート内のすべてのテスト クラスが XNUMX つずつ実行を開始します。

テスト スイートとテスト ランナーを作成する手順

ステップ1) 単純なテスト クラス (例: MyFirstClassTest) を作成し、@test アノテーションを付けたメソッドを追加します。

テスト スイートとテスト ランナーを作成する手順

ステップ2) 追加する別のテスト クラス (例: MySecondClassTest) を作成し、@test アノテーションを付けたメソッドを作成します。

テスト スイートとテスト ランナーを作成する手順

ステップ3) testSuite を作成するには、まずクラスに @RunWith(Suite.class) と @SuiteClasses(class1.class2…..) のアノテーションを付ける必要があります。

テスト スイートとテスト ランナーを作成する手順

ステップ4) 以下に示すように、テスト スイートを実行するためのテスト ランナー クラスを作成します。

テスト スイートとテスト ランナーを作成する手順

コードの説明:

  • コード行 8: クラステストを実行するメインメソッドを宣言します。 JUnit テスト。
  • コード行 9: テスト クラス名をパラメーターとして受け取る JunitCore.runclasses を使用してテスト ケースを実行します (上記の例では、手順 3 に示す TestSuiteExample.class を使用しています)。
  • コード行 11: for ループを使用して結果を処理し、失敗した結果を出力します。
  • コード行 13: 成功した結果を出力します。

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

テスト スイートとテスト ランナーを作成する手順

JUnit テストスイートの例

より複雑な例を考えてみましょう

java のテスト

JunitTest.javaは、 @RunWith@スイート 注釈。 以下に示すように、スイート内の .classes の数をパラメーターとしてリストできます。

package guru99.junit;		
import org.junit.runner.RunWith;		
import org.junit.runners.Suite;		

@RunWith(Suite.class)				
@Suite.SuiteClasses({				
  SuiteTest1.class,
  SuiteTest2.class,  			
})		

public class JunitTest {				
			// This class remains empty, it is used only as a holder for the above annotations		
}

SuiteTest1.java

SuiteTest1.java は、以下に示すメッセージを出力するテスト メソッドを持つテスト クラスです。 このクラスは上記のクラスのスイートとして使用します。

package guru99.junit;		

import static org.junit.Assert.assertEquals;				

import org.junit.Test;		

public class SuiteTest1 {				

    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 Hi Message is printing ");					
        assertEquals(message, junitMessage.printHiMessage());					
        System.out.println("Suite Test 2 is successful " + message);							
    }		
}		

SuiteTest2.java

SuiteTest2.java は、次のような別のテストクラスです SuiteTest1.java 以下に示すようなメッセージを出力するテスト メソッドがあります。 このクラスをスイートとして使用します。 java のテスト.

package guru99.junit;		

import org.junit.Assert;		
import org.junit.Test;		

public class SuiteTest2 {				
   	

    @Test		
    public void createAndSetName() {					
        		

        String expected = "Y";					
        String actual = "Y";					

        Assert.assertEquals(expected, actual);					
        System.out.println("Suite Test 1 is successful " + actual);							
    }		

}		

出力

実行後 ジュニットテスト.java には次のスイートが含まれています テスト1.javaテスト2.java、以下の出力が得られます。

スイートテスト2。Java 出力

スイートテスト2。Java 出力

まとめ

このチュートリアルでは、例を挙げながらテスト ハーネスとテスト スイートの基本を詳しく学習しました。

  • テストハーネスまたは自動化 テスト ユーザーが複数の入力でデータをテストし、実行を制御できるようにするソフトウェアまたはソフトウェアのコレクションです。
  • テスト ハーネスは実際に、テスト ライブラリを使用したテストの実行とテスト レポートの生成のすべての作業を実行するテスト フレームワークを有効にします。
  • Junit では、テスト スイートを使用すると、多数のクラスのすべてのテスト ケースを 1 か所に集約し、まとめて実行できます。