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

ホワイトボックス テスト フレームワーク (JUnit) の使用

Nov 29, 2021 am 09:33 AM
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ヘンタイを無料で生成します。

ホットツール

メモ帳++7.3.1

メモ帳++7.3.1

使いやすく無料のコードエディター

SublimeText3 中国語版

SublimeText3 中国語版

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

ゼンドスタジオ 13.0.1

ゼンドスタジオ 13.0.1

強力な PHP 統合開発環境

ドリームウィーバー CS6

ドリームウィーバー CS6

ビジュアル Web 開発ツール

SublimeText3 Mac版

SublimeText3 Mac版

神レベルのコード編集ソフト(SublimeText3)

JUnit フレームワークのテスト メソッドにアノテーションはどのように使用されますか? JUnit フレームワークのテスト メソッドにアノテーションはどのように使用されますか? May 06, 2024 pm 05:33 PM

JUnit フレームワークのアノテーションは、テスト メソッドの宣言と構成に使用されます。主なアノテーションには、@Test (テスト メソッドの宣言)、@Before (テスト メソッドの実行前に実行されるメソッド)、@After (テスト メソッドの後に実行されるメソッド) があります。が実行される)、@ BeforeClass (すべてのテスト メソッドが実行される前に実行されるメソッド)、@AfterClass (すべてのテスト メソッドが実行された後に実行されるメソッド)、これらのアノテーションは、テスト コードを整理して簡素化し、テスト コードの信頼性を向上させるのに役立ちます。明確な意図と構成を提供することで、読みやすさと保守性を向上させます。

JUnit 単体テスト フレームワーク: 初心者向けチュートリアル JUnit 単体テスト フレームワーク: 初心者向けチュートリアル Apr 18, 2024 pm 01:51 PM

JUnit は、アプリケーション コンポーネントをテストするための簡潔なツールを提供する Java の単体テスト フレームワークです。依存関係をインストールした後、@Test アノテーションを含む単体テスト クラスを作成してクラスをテストし、assertEquals などのアサーション メソッドを使用して期待値と実際の値を検証できます。 JUnit は、準備メソッド、失敗メッセージ、タイムアウト メカニズムなどの多くの機能を提供します。

マルチスレッド環境での JUnit 単体テスト フレームワークの使用 マルチスレッド環境での JUnit 単体テスト フレームワークの使用 Apr 18, 2024 pm 03:12 PM

マルチスレッド環境で JUnit を使用する場合、シングルスレッド テストとマルチスレッド テストという 2 つの一般的なアプローチがあります。シングルスレッド テストは同時実行性の問題を回避するためにメイン スレッドで実行されますが、マルチスレッド テストはワーカー スレッドで実行され、共有リソースが妨げられないように同期されたテスト アプローチが必要です。一般的な使用例には、マルチスレッド環境での JUnit のアプリケーションを反映する、キーと値のペアを格納するための ConcurrentHashMap の使用や、キーと値のペアを操作してその正しさを検証するための同時スレッドなど、マルチスレッド セーフなメソッドのテストが含まれます。 。

JUnit 単体テスト フレームワーク: それを使用する利点と制限事項 JUnit 単体テスト フレームワーク: それを使用する利点と制限事項 Apr 18, 2024 pm 09:18 PM

JUnit 単体テスト フレームワークは広く使用されているツールであり、その主な利点には、自動テスト、高速フィードバック、コード品質の向上、移植性などがあります。ただし、範囲の制限、メンテナンスコスト、依存関係、メモリ消費、継続的統合サポートの欠如などの制限もあります。 Java アプリケーションの単体テストにとって、JUnit は多くの利点を提供する強力なフレームワークですが、使用する場合はその制限を考慮する必要があります。

Spring プロジェクトでの JUnit 単体テスト フレームワークの適用 Spring プロジェクトでの JUnit 単体テスト フレームワークの適用 Apr 18, 2024 pm 04:54 PM

JUnit は Spring プロジェクトで広く使用されている Java 単体テスト フレームワークであり、次の手順で適用できます。 JUnit 依存関係を追加します。 org.junit.jupiterjunit-jupiter5.8.1test テスト ケースを作成します。 @ExtendWith(SpringExtension.class) を使用して拡張機能を有効にします。 @Autowired を使用して Bean を注入し、@BeforeEach と @AfterEach を使用して準備とクリーンアップを行い、テスト メソッドを @Test でマークします。

JUnit 単体テスト フレームワーク: デバッグ モードでテスト ケースを実行するためのヒント JUnit 単体テスト フレームワーク: デバッグ モードでテスト ケースを実行するためのヒント Apr 18, 2024 pm 03:54 PM

JUnit では、@RunWith アノテーションを使用して BlockJUnit4ClassRunner ランナーを関連付けることにより、デバッグ モードでテスト ケースを実行できます。ブレークポイントを設定して実行を一時停止し、変数を調べます。 System.out.println() を使用して、コードの実行を追跡するための情報を出力します。 JUnitAssert アサーション メソッドを使用して、期待値と実際の値を確認します。

Java の JUnit 単体テスト フレームワークのベスト プラクティスは何ですか? Java の JUnit 単体テスト フレームワークのベスト プラクティスは何ですか? Apr 18, 2024 pm 09:03 PM

JUnit 単体テスト フレームワークのベスト プラクティスに従うと、効果的なコード検証が可能になります。 独立したテストを作成する 適切な場所にテストを配置する アサーションを使用して結果を賢明に検証する 命名規則に従う (テストから始める) ネガティブ テストを作成する モッキングとスタブを使用して依存関係を分離する 静的使用を避ける重複したコードを削除し、テストの実行を自動化するための変数

JUnit 単体テスト フレームワーク: 一般的なメモリ リークの問題を解決するためのガイド JUnit 単体テスト フレームワーク: 一般的なメモリ リークの問題を解決するためのガイド Apr 18, 2024 pm 04:51 PM

JUnit 単体テスト フレームワークは、一般的なメモリ リークの問題を効果的に解決できます。一般的なリークの問題には、永続的な静的変数参照や閉じられていないリソースが含まれます。 JUnit は、リーク検出器とメモリ使用量を分析してリークの原因を特定するツールを提供します。解決策には、ローカル変数の使用、弱い参照、リソースを正しく閉じること、try-with-resources ステートメントの使用が含まれます。これらのガイドラインに従うことで、開発者は信頼性が高く安定した JUnit テスト環境を作成できます。

See all articles