検索
ホームページJava&#&はじめるホワイトボックス テスト フレームワーク (JUnit) の使用

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 サイトの他の関連記事を参照してください。

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

ホットAIツール

Undresser.AI Undress

Undresser.AI Undress

リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover

AI Clothes Remover

写真から衣服を削除するオンライン AI ツール。

Undress AI Tool

Undress AI Tool

脱衣画像を無料で

Clothoff.io

Clothoff.io

AI衣類リムーバー

AI Hentai Generator

AI Hentai Generator

AIヘンタイを無料で生成します。

ホットツール

mPDF

mPDF

mPDF は、UTF-8 でエンコードされた HTML から PDF ファイルを生成できる PHP ライブラリです。オリジナルの作者である Ian Back は、Web サイトから「オンザフライ」で PDF ファイルを出力し、さまざまな言語を処理するために mPDF を作成しました。 HTML2FPDF などのオリジナルのスクリプトよりも遅く、Unicode フォントを使用すると生成されるファイルが大きくなりますが、CSS スタイルなどをサポートし、多くの機能強化が施されています。 RTL (アラビア語とヘブライ語) や CJK (中国語、日本語、韓国語) を含むほぼすべての言語をサポートします。ネストされたブロックレベル要素 (P、DIV など) をサポートします。

SublimeText3 Linux 新バージョン

SublimeText3 Linux 新バージョン

SublimeText3 Linux 最新バージョン

MantisBT

MantisBT

Mantis は、製品の欠陥追跡を支援するために設計された、導入が簡単な Web ベースの欠陥追跡ツールです。 PHP、MySQL、Web サーバーが必要です。デモおよびホスティング サービスをチェックしてください。

SublimeText3 中国語版

SublimeText3 中国語版

中国語版、とても使いやすい

Safe Exam Browser

Safe Exam Browser

Safe Exam Browser は、オンライン試験を安全に受験するための安全なブラウザ環境です。このソフトウェアは、あらゆるコンピュータを安全なワークステーションに変えます。あらゆるユーティリティへのアクセスを制御し、学生が無許可のリソースを使用するのを防ぎます。