Junit フレームワーク:
Junit は、オープンソースの Java 単体テスト フレームワークです。
今日は、junit5 を紹介します。junit5 は、Junit Platform、Junit Jupiter、および Junit Vintage を含む 3 つの異なるサブプロジェクト モジュールで構成されています。 Java 8以降に対応しています ここで使用するエディタはIntelliJ IDEAです 最終結果を確認するだけで、プロジェクト全体のメソッドインターフェースがスムーズかどうかが分かります。各単体テスト ケースは比較的独立しており、Junit によって開始され、自動的に呼び出されます。追加の呼び出しステートメントを追加する必要はありません。
テスト メソッドを追加、削除、ブロックしても、他のテスト メソッドには影響しません。
Junit は主にホワイト ボックス テストに使用されます。ホワイト ボックス テストの手順は次のとおりです:
1. テスト計画段階: テスト スケジュールを作成します。要求仕様。
2. テスト設計段階: コードの機能に応じて、基本的な機能テスト用のテスト ケースを手動で設計します。プログラミング命令に従って、ソフトウェア構造は分割され、特定の標準化された方法に従ってテスト ケースが設計されます。
3. テスト実行フェーズ: テスト ケースを入力し、テスト結果を取得します。
4. テスト概要ステージ: テスト結果をコードの予想結果と比較し、エラーの原因を分析し、エラーを見つけて解決します。
次に、内部のアノテーションを紹介します。
@Test: 属性を宣言せずにテスト メソッドを表します。
@ParameterizedTest: メソッドがテスト メソッドであることを示します。さらに、このアノテーションを使用すると、テスト メソッドを別の人を使用して複数回実行することもできます。
@RepeatedTest: このアノテーションを使用すると、テスト メソッドで繰り返し実行の回数をカスタマイズできます。
@TestFactory: メソッドがデータ駆動型の動的テスト データ ソースに基づいていることを示します。
@Displayname: テスト クラスまたはテスト メソッドのカスタム表示名を宣言します。
@BeforeEach: 各テスト メソッドが実行される前に、指定されたメソッドが実行されることを示します。
@AfterEach: 各テスト メソッドの実行後に、指定されたメソッドが実行されることを示します。
@BeforeAll: 現在のクラスのすべてのテスト メソッドの前に実行され、このメソッドには初期化コードが含まれる場合があります。
@AfterAll: 現在のクラスのすべてのテスト メソッドの後に実行されます。
@Disabled: テスト クラスまたはメソッドが無効であることを示します。
アサーション:
失敗: アサーション テストが失敗しました。
AssertTrue/asserFalse: true または false をアサートします。
AssertNull/assertNotNull: Assert が null であるか、null ではありません。
assertEquals/assertNotEquals: 2 つの値が等しくないことをアサートします。
AssertArrayEquals: すべての配列要素が同じであることをアサートします。
AssertSame/assertNotSame: 2 つのオブジェクトが同じかどうかをアサートします。
AssertThrows/assertDoesNotThrow: 例外がスローされたかどうかをアサートします。
AssertAll: 複数の条件が満たされていることをアサートします;
次に、クラスを作成し、いくつかのメソッドを作成します:
package test;//包机制 import java.lang.reflect.Array; public class MixedOperation { public int mixeOperation(int x,int y){ return division((x+y),y); } public int division(int x,int y){ int result=(x/y); return result; } public static void main(String[] args) { MixedOperation mixedOperation=new MixedOperation(); System.out.println(mixedOperation.mixeOperation(5,1)); } }
MixedOperation という名前のクラスを作成します;
package test; import org.junit.jupiter.api.*; import org.junit.jupiter.params.ParameterizedTest; import org.junit.jupiter.params.provider.CsvSource; public class MixedOperationTest { private MixedOperation mixedOperation; @BeforeEach public void init(){ mixedOperation=new MixedOperation(); } @Test public void successTest(){ System.out.println("run a test:x=4,y=2"); int result=mixedOperation.mixeOperation(4,2); Assertions.assertEquals(3,result); } /* @DisplayName("失败") public void errorTest(){` System.out.println("run a test:x=4,y=0"); ArithmeticException exception=new ArithmeticException( ArithmeticException.class -> { mixedOperation.mixeOperation(4, 0); } ); }*/ @Disabled("参数") @Test @DisplayName("参数") @ParameterizedTest @CsvSource({"6,3,3","5,2,3","6,2,4"}) public void caTest(int x,int y,int excepted){ System.out.println("run a test :x="+x+"y="+y); System.out.println(excepted); int t= mixedOperation.mixeOperation(x,y); Assertions.assertEquals(excepted,t); } @Disabled @Test public void Next(){ System.out.println("抛出一个异常"); System.out.println(Assertions.assertThrows(IllegalArgumentException.class, () ->mixedOperation.mixeOperation(2,0))); } @Disabled @Test void error(){ Assertions.assertThrows(Exception.class,()->{Assertions.assertEquals(1,0);}); } @Test void sure(){ int result=mixedOperation.mixeOperation(4,2); Assertions.assertTrue(3==result);//断言相等 } }
これは、MixedOperationTest という名前で作成したテスト クラスです。
関連する推奨事項: 「java ビデオ チュートリアル 」
以上がホワイトボックス テスト フレームワーク (JUnit) の使用の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。