ホームページ  >  記事  >  Java  >  Java と Spring の間で Junit を統合するにはどうすればよいですか?

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

WBOY
WBOY転載
2023-04-21 11:13:071219ブラウズ

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

    声明:
    この記事はyisu.comで複製されています。侵害がある場合は、admin@php.cn までご連絡ください。