亚洲国产日韩欧美一区二区三区,精品亚洲国产成人av在线,国产99视频精品免视看7,99国产精品久久久久久久成人热,欧美日韩亚洲国产综合乱

目次
1。テスト可能なコードを書き込み:依存関係の注入とゆるい結合
2。構造化された読み取り可能なテストには、Junit 5を使用します
3。モッキートによるモック依存関係
4。清潔で保守可能なテストのためのベストプラクティス
最終的な考え
ホームページ Java &#&チュートリアル Junit 5とMockitoでテスト可能なJavaコードを書きます

Junit 5とMockitoでテスト可能なJavaコードを書きます

Jul 28, 2025 am 03:24 AM
mockito JUnit 5

依存関係注入を使用してテスト可能なコードを書き込み、ハードコーディングされた依存関係を注入されたものに置き換えることで見られるように、ゆるい結合を可能にします。 2。@beforeeach、@test、Assertthrowsなどの機能を備えた構造化されたテストにはJunit 5を使用して、清潔で読み取り可能な、信頼性の高いテストを確保します。 3. mock()、when()。thenreturn()、およびverify()を使用してmockitoを使用したMock外部依存関係を使用して、行動を分離し、実際のシステムへの依存を避けます。 4.記述テスト名、AAAパターン、実裝の詳細テストの回避、テストを獨立させ、過剰なモックではなく、メンテナンス可能な効果的なテストを確保するためのエッジケースをカバーするなどのベストプラクティスに従ってください。最終的に、テスト可能性のために設計することでコードの品質が向上し、変更、デバッグ、信頼が容易になります。

Junit 5とMockitoでテスト可能なJavaコードを書きます

テスト可能なJavaコードを作成することは、保守可能で堅牢なアプリケーションを構築するための重要なスキルです。 Junit 5は、モッキング依存関係の最新のテストフレームワークとモッキートとして、外部システムに依存せずに動作を検証するクリーンで信頼できる単體テストを書くことができます。コードとテストを効果的に構築する方法は次のとおりです。

Junit 5とMockitoでテスト可能なJavaコードを書きます

1。テスト可能なコードを書き込み:依存関係の注入とゆるい結合

テスト可能なコードの基礎は、依存噴射(DI)ゆるい結合です。テストを困難にするハードコーディングされた依存関係や靜的コールを避けてください。

悪い例(テストが難しい):

Junit 5とMockitoでテスト可能なJavaコードを書きます
パブリッククラスのOrderservice {
    private emailservice emailservice = new EmailService(); //ハード依存関係

    public voidプロセス(注文注文){
        // Logic
        emailService.sendConfirmation(注文);
    }
}

これにより、 OrderService EmailServiceに緊密にカップルされ、実際に電子メールを送信せずにprocess()をテストすることが不可能になります。

良いアプローチ(DIでテスト可能):

Junit 5とMockitoでテスト可能なJavaコードを書きます
パブリッククラスのOrderservice {
    プライベートの最終メールサービスemailservice;

    public Orderservice(EmailService EmailService){
        this.emailservice = emailService;
    }

    public voidプロセス(注文注文){
        //ビジネスロジック
        emailService.sendConfirmation(注文);
    }
}

これで、Mockitoを使用したテスト中に、モックされたEmailServiceを挿入できます。


2。構造化された読み取り可能なテストには、Junit 5を使用します

Junit 5は、ライフサイクル管理と表現力のあるアサーションを改善する最新の構文を提供します。

テストクラスの例:

 import org.junit.jupiter.api。*;
static org.mockito.mockito。*;
static org.junit.jupiter.api.assertions。*;

@testinstance(testinstance.lifecycle.per_method)
class OrderServicETEST {

    プライベートメールサービスemailservice;
    Private Orderservice Orderservice;

    @beforeach
    void setup(){
        emailService = mock(emailservice.class);
        OrderService = new Orderservice(emailService);
    }

    @テスト
    @displayname(「注文の処理時に確認メールを送信する必要があります」)
    void shouldsendemailonprocess(){
        //指定
        注文= new Order( "123"、100.0);

        // いつ
        OrderService.Process(注文);

        // それから
        Verify(EmailService、Times(1))。sendconfirmation(order);
    }

    @テスト
    @displayname( "null注文の例外をスローする必要があります")
    void shouldexceptionfornulrorder(){
        //いつ&then
        assertthrows(IllegalargumentException.class、() - > {
            OrderService.Process(null);
        });
    }
}

キーJunit 5の機能を使用してください:

  • @BeforeEach - 各テストの前に実行されます(クリーンステート)
  • @Test - テスト方法をマークします
  • @DisplayName - テストレポートで読みやすさを向上させます
  • assertThrows - 予想される例外を検証します
  • verify() - モックとの相互作用をチェックします

3。モッキートによるモック依存関係

Mockitoを使用すると、外部サービス(データベース、API、電子メールなど)をシミュレートでき、ユニットテストは速く実行され、動作を隔離します。

一般的なモキトパターン:

  • モック作成: mock(ClassName.class)
  • スタブ方法: when(mock.method()).thenReturn(value)
  • 相互作用の検証: verify(mock).method()

例:リポジトリコールのスタブ

パブリッククラスユーザーサービス{
    プライベート最終userreRepository userrepository;

    public userservice(userrepository userrepository){
        this.userrepository = ueserrepository;
    }

    public user finduserbyid(string id){
        userrepository.findbyid(id)を返します
                .orelsethrow(() - > new usernotfoundexception( "user not in not"));
    }
}

モッキートでテスト:

 @テスト
@displayname( "リポジトリで見つかったときにユーザーを返す必要があります")
void seled returnuser whenfound(){
    //指定
    userrepository userrepository = mock(userrepository.class);
    user mockuser = new user( "1"、 "Alice");
    when(userrepository.findbyid( "1"))。sonreturn(optional.of(mockuser));

    userservice userservice = new userservice(userrepository);

    // いつ
    ユーザーresult = userservice.finduserbyid( "1");

    // それから
    Assertequals( "Alice"、result.getName());
    Verify(userrepository).findbyid( "1");
}

実際のデータベースではなく、 UserServiceのロジックのみをテストしています。


4。清潔で保守可能なテストのためのベストプラクティス

テストを効果的に保つために、次のガイドラインに従ってください。

  • 記述テスト名を使用します
    testProcess()よりもshouldThrowExceptionWhenOrderIsNull()は、suldexceptionを好みます。

  • AAAパターンに従ってください
    テストを整理して、明確にするために、アレンジ、行動アサートブロックを整理します。

  • 実裝の詳細のテストは避けてください
    方法をテストします、それがどのように行うかではありません。內部のプライベートメソッドを確認しないでください。

  • テストを獨立して高速に保ちます
    テストの間に共有狀態(tài)はありません。代わりに@BeforeEachまたは工場メソッドを使用してください。

  • 閉じ込めないでください
    外部依存関係をモックします。価値のあるオブジェクトやシンプルなユーティリティをmockしないでください。

  • テストエッジケース
    ヌル入力、空のコレクション、例外 - これらは一般的な障害ポイントです。


最終的な考え

テスト可能なJavaコードを作成するだけでなく、テストを追加するだけでなく、テスト可能性を念頭に置いてクラスを設計することです。依存関係の注入、インスタンス化よりも構成を好む、そして細かい懸念をきれいに使用します。

Junit 5とMockitoを使用すると、次のような強力なツールを取得します。

  • 表現力豊かで読みやすいテストを書いてください
  • 行動の単位を分離します
  • 依存関係を安全にシミュレートします

結果?変更、デバッグ、信頼が簡単なコード。

基本的に、簡単にテストできない場合は、デザインを再考してください。

以上がJunit 5とMockitoでテスト可能なJavaコードを書きますの詳細內容です。詳細については、PHP 中國語 Web サイトの他の関連記事を參照してください。

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

ホットAIツール

Undress AI Tool

Undress AI Tool

脫衣畫像を無料で

Undresser.AI Undress

Undresser.AI Undress

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

AI Clothes Remover

AI Clothes Remover

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

Clothoff.io

Clothoff.io

AI衣類リムーバー

Video Face Swap

Video Face Swap

完全無料の AI 顔交換ツールを使用して、あらゆるビデオの顔を簡単に交換できます。

ホットツール

メモ帳++7.3.1

メモ帳++7.3.1

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

SublimeText3 中國語版

SublimeText3 中國語版

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

ゼンドスタジオ 13.0.1

ゼンドスタジオ 13.0.1

強力な PHP 統(tǒng)合開発環(huán)境

ドリームウィーバー CS6

ドリームウィーバー CS6

ビジュアル Web 開発ツール

SublimeText3 Mac版

SublimeText3 Mac版

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

Mockito フレームワークのアノテーションはスタブの生成と検証をどのように簡素化しますか? Mockito フレームワークのアノテーションはスタブの生成と検証をどのように簡素化しますか? May 06, 2024 pm 05:48 PM

Mockito フレームワークのアノテーションにより、スタブの生成と検証プロセスが簡素化されます。 @Mock: モック オブジェクトを自動的に生成および管理します。 @Captor: モック メソッドに渡されるパラメーター値をキャプチャします。 @InjectMocks: テスト対象のクラスにモック オブジェクトを自動的に挿入します。 @Spy: いくつかのスタブ オブジェクトを作成し、元のメソッド実裝を保持します。

Java バックエンド開発: Mockito を使用した API 単體テストのモック化 Java バックエンド開発: Mockito を使用した API 単體テストのモック化 Jun 17, 2023 am 08:27 AM

インターネットの普及に伴い、Java バックエンド開発は重要な分野になりました。開発プロセスにおいて単體テストは非常に重要なステップであり、Mockito は優(yōu)れた API 単體テスト シミュレーション ツールです。この記事では、Java バックエンド開発における Mockito の使用方法を紹介します。モッキートとは何ですか? Mockito は、Mock オブジェクトの形式で API 単體テストのシミュレーション機能を提供する Java フレームワークです。モックオブジェクトとは、動作が當社によって設定されるいくつかの仮想オブジェクトを指します。

JAX-RS と単體テスト: RESTful コードの堅牢性を確保する JAX-RS と単體テスト: RESTful コードの堅牢性を確保する Feb 29, 2024 pm 08:31 PM

はじめに RESTful API の人気が高まっているため、その堅牢性を確保することが重要になっています。単體テストは、特に RESTful API の場合、コードの機能と動作を検証する効果的な方法です。この記事では、JAX-RS と Mockito や RESTAssured などの単體テスト フレームワークを使用して RESTful コードをテストする方法について説明します。 JAX-RS の概要 JAX-RS は、RESTful API を構築するための Java API です。これは、リソースを定義し、HTTP 要求と応答を処理するための一連の注釈とクラスを提供します。 JAX-RS を使用すると、開発者はさまざまなクライアントと通信できる RESTful サービスを簡単に作成できます。単體テスト

Java単體テストにMockitoを使用する方法 Java単體テストにMockitoを使用する方法 Apr 19, 2023 pm 11:22 PM

Mockito の概要 モック オブジェクトのメソッドを呼び出す場合、実際のメソッドは実行されませんが、戻り値の型のデフォルト値 (object は null を返し、int は 0 を返すなど) が返されます。それ以外の場合、メソッドは when を指定することで指定されます。 (メソッド).thenReturn(value) 戻り値。同時に、モック オブジェクトを追跡し、verify メソッドを使用してそれが呼び出されたかどうかを確認できます。スパイ オブジェクトはデフォルトで実際のメソッドを実行し、戻り値は when.thenReturn を通じてオーバーライドできます。モックが一部のメソッドの実行を回避し、指定された値を直接返す限り、他??のテストには便利であることがわかります。サービス テスト ケースには依存関係が必要です junitjunit4.1

Mockito と JUnit 単體テスト フレームワーク: 連攜する方法 Mockito と JUnit 単體テスト フレームワーク: 連攜する方法 Apr 18, 2024 pm 01:36 PM

Mockito と JUnit が連攜して単體テストの効率を向上します。Mockito を使用すると、コードの予想される相互作用を検証するためのテスト スタブとモック オブジェクトを作成できます。 JUnit は、テストの作成と実行を容易にするフレームワークを提供します。組み合わせて使用??すると、コードの正しさを効果的に検証する、可読性と保守性の高いテストを作成できます。

Mockito を使用して Java 関數を単體テストするにはどうすればよいですか? Mockito を使用して Java 関數を単體テストするにはどうすればよいですか? Apr 27, 2024 pm 03:36 PM

Mockito を使用して Java 関數をテストする手順: Mockito の依存関係を追加します。モック オブジェクトを作成し、モックの動作を設定します。テストする関數を呼び出します。関數の期待される動作をアサートします。 verify() を使用して、シミュレートされた対話を検証します。

PHP でのテスト駆動開発に JUnit と Mockito を使用する方法 PHP でのテスト駆動開発に JUnit と Mockito を使用する方法 Jun 25, 2023 pm 02:25 PM

ソフトウェア開発が進歩し続けるにつれて、テスト駆動開発 (TDD) はますます人気のある開発モデルになっています。 TDD のプロセスでは、テストが開発プロセスの中核となり、JUnit と Mockito の 2 つのテスト フレームワークが一般的に使用されます。 PHP 開発で、TDD に JUnit と Mockito を使用するにはどうすればよいですか?以下に詳しくご紹介します。 1. JUnit と Mockito の概要 JUnit は Java 言語のテスト フレームワークです。 Java に役立ちます

Java JUnit 究極ガイド: 単體テストをマスターする Java JUnit 究極ガイド: 単體テストをマスターする Feb 19, 2024 am 11:36 AM

はじめに JUnit は、Erich Gamma と Kent Beck によって 1997 年に設立された、Java コードの単體テスト用のオープン ソース フレームワークです。これにより、開発者はコードの正確さを検証するテスト ケースを作成できます。単體テストを通じて、開発者はコードが個々のユニット レベルで期待どおりに動作することを確認できるため、コードの堅牢性と信頼性が向上します?;镜膜适褂梅?JUnit テスト ケースは、@Test アノテーションが付けられたメソッドであり、通常は test で始まります。これには次の部分が含まれます。 セットアップ: @Before メソッドで、各テスト ケースに必要なステータスを設定します。テスト: @Test メソッドで、テスト対象のロジックを実行し、結果を検証します。クリーンアップ: @After メソッド內、各テスト ケース內

See all articles