検索
ホームページJava&#&チュートリアルJava と Spring の間で Junit を統合するにはどうすればよいですか?

    1 テスト クラスの問題と解決策

    1.1 問題

    • テスト クラスでは、それぞれのテスト メソッドには次の 2 行のコードがあります:

      • ##ApplicationContext ac = new ClassPathXmlApplicationContext("bean.xml");

      • IAccountService as = ac.getBean("accountService",IAccountService.class);

    • これら 2 行のコードの機能は、コンテナーを取得することです。 、空のポインター例外を直接プロンプトします。したがって、簡単に削除することはできません。

    1.2 解決策のアイデアの分析

    • 上記の問題を考慮すると、プログラムが

      コンテナを自動的に作成できることが必要です。

    • junit は Spring フレームワークが使用されているかどうかを知ることができず、Spring コンテナーを作成できませんが、junit はランナーを置き換えることができるアノテーションを公開します。

    • Spring フレームワークによって提供されるランナーに依存する必要があります。構成ファイル (またはアノテーション) を読み取ってコンテナーを作成できます。構成ファイルの場所を伝えるだけで済みます。は。

    2 構成手順

    2.1 手順 1: junit を統合するために必要な jar パッケージを lib ディレクトリにコピーします

    • これなお、jarパッケージをインポートする場合は、Springでaopのjarパッケージをインポートする必要があります。

    Java と Spring の間で Junit を統合するにはどうすればよいですか?

    2.2 ステップ 2: @RunWith アノテーションを使用して元のランナーを置き換えます。

    @RunWith(SpringJUnit4ClassRunner.class)
    public class AccountServiceTest {
    }

    2.3 ステップ 3: @ContextConfiguration を使用します。スプリング構成ファイルの場所

    @RunWith(SpringJUnit4ClassRunner.class)
    @ContextConfiguration(locations= {"classpath:bean.xml"})
    public class AccountServiceTest {
    }

    • @ContextConfiguration 注:

      • locations 属性: 構成ファイルの場所を指定するために使用されます。 。クラスパス上にある場合は、クラスパス: を使用して、アノテーション付きクラスの指定に使用される

      • classes 属性を指定する必要があります。 XML 構成を使用しない場合は、この属性を使用してアノテーション クラスの場所を指定する必要があります。

    2.4 ステップ 4: @Autowired を使用してテスト クラスの変数にデータを挿入する

    @RunWith(SpringJUnit4ClassRunner.class)
    @ContextConfiguration(locations= {"classpath:bean.xml"})
    public class AccountServiceTest {
     
        @Autowired
        private IAccountService as ;
    }

    3 テスト クラスを xml に割り当てない理由

    • 最初: Bean が XML で構成され、Spring が構成ファイルをロードしてコンテナーを作成すると、オブジェクトが作成されます。

    • 2 番目: テスト クラスは、関数をテストする場合にのみ使用されます。プロジェクトでは、プログラム ロジックには関与せず、要求の問題は解決されません。そのため、テスト クラスを作成した後、無駄です。容器に保管すると資源の無駄遣いになります。

    以上がJava と Spring の間で Junit を統合するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

    声明
    この記事は亿速云で複製されています。侵害がある場合は、admin@php.cn までご連絡ください。
    高度なJavaプロジェクト管理、自動化の構築、依存関係の解像度にMavenまたはGradleを使用するにはどうすればよいですか?高度なJavaプロジェクト管理、自動化の構築、依存関係の解像度にMavenまたはGradleを使用するにはどうすればよいですか?Mar 17, 2025 pm 05:46 PM

    この記事では、Javaプロジェクト管理、自動化の構築、依存関係の解像度にMavenとGradleを使用して、アプローチと最適化戦略を比較して説明します。

    適切なバージョン化と依存関係管理を備えたカスタムJavaライブラリ(JARファイル)を作成および使用するにはどうすればよいですか?適切なバージョン化と依存関係管理を備えたカスタムJavaライブラリ(JARファイル)を作成および使用するにはどうすればよいですか?Mar 17, 2025 pm 05:45 PM

    この記事では、MavenやGradleなどのツールを使用して、適切なバージョン化と依存関係管理を使用して、カスタムJavaライブラリ(JARファイル)の作成と使用について説明します。

    カフェインやグアバキャッシュなどのライブラリを使用して、Javaアプリケーションにマルチレベルキャッシュを実装するにはどうすればよいですか?カフェインやグアバキャッシュなどのライブラリを使用して、Javaアプリケーションにマルチレベルキャッシュを実装するにはどうすればよいですか?Mar 17, 2025 pm 05:44 PM

    この記事では、カフェインとグアバキャッシュを使用してJavaでマルチレベルキャッシュを実装してアプリケーションのパフォーマンスを向上させています。セットアップ、統合、パフォーマンスの利点をカバーし、構成と立ち退きポリシー管理Best Pra

    キャッシュや怠zyなロードなどの高度な機能を備えたオブジェクトリレーショナルマッピングにJPA(Java Persistence API)を使用するにはどうすればよいですか?キャッシュや怠zyなロードなどの高度な機能を備えたオブジェクトリレーショナルマッピングにJPA(Java Persistence API)を使用するにはどうすればよいですか?Mar 17, 2025 pm 05:43 PM

    この記事では、キャッシュや怠zyなロードなどの高度な機能を備えたオブジェクトリレーショナルマッピングにJPAを使用することについて説明します。潜在的な落とし穴を強調しながら、パフォーマンスを最適化するためのセットアップ、エンティティマッピング、およびベストプラクティスをカバーしています。[159文字]

    Javaのクラスロードメカニズムは、さまざまなクラスローダーやその委任モデルを含むどのように機能しますか?Javaのクラスロードメカニズムは、さまざまなクラスローダーやその委任モデルを含むどのように機能しますか?Mar 17, 2025 pm 05:35 PM

    Javaのクラスロードには、ブートストラップ、拡張機能、およびアプリケーションクラスローダーを備えた階層システムを使用して、クラスの読み込み、リンク、および初期化が含まれます。親の委任モデルは、コアクラスが最初にロードされ、カスタムクラスのLOAに影響を与えることを保証します

    See all articles

    ホット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ヘンタイを無料で生成します。

    ホットツール

    SublimeText3 中国語版

    SublimeText3 中国語版

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

    SublimeText3 Mac版

    SublimeText3 Mac版

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

    SecLists

    SecLists

    SecLists は、セキュリティ テスターの究極の相棒です。これは、セキュリティ評価中に頻繁に使用されるさまざまな種類のリストを 1 か所にまとめたものです。 SecLists は、セキュリティ テスターが必要とする可能性のあるすべてのリストを便利に提供することで、セキュリティ テストをより効率的かつ生産的にするのに役立ちます。リストの種類には、ユーザー名、パスワード、URL、ファジング ペイロード、機密データ パターン、Web シェルなどが含まれます。テスターはこのリポジトリを新しいテスト マシンにプルするだけで、必要なあらゆる種類のリストにアクセスできるようになります。

    Dreamweaver Mac版

    Dreamweaver Mac版

    ビジュアル Web 開発ツール

    PhpStorm Mac バージョン

    PhpStorm Mac バージョン

    最新(2018.2.1)のプロフェッショナル向けPHP統合開発ツール