web-dev-qa-db-ja.com

SpringサービスとDAOレイヤーをテストするJunit

私はSpringアプリケーション(Spring 3.0)と次の階層化アーキテクチャに取り組んでいますController -> Service -> DAO layers

Junitを使用して、サービスおよびDAOレイヤーのユニットテストケースを記述したいと思います。
Springの公式サ​​イトをチェックし、他の多くのサイトも試しましたが、簡単で簡単な方法を見つけることができませんでした。

誰でも私に役立つリソースを提供できますか?


編集:
Mockito のように見えるのが良いオプションです。 Springで使用するための適切なリンク。

アレックス、提案してくれてありがとう。

26
xyz

リソースに関しては、テストに関するSpringのドキュメントは非常に優れています。これは here にあります。

サービスレイヤーをテストするときは、Mockitoなどのモッキングライブラリを使用して、DAO、したがってドメインレイヤーをモックする必要があります。これにより、それらが真の単体テストであることが保証されます。

次に、データベースに対してDAOを統合テストするには、そのリファレンスドキュメントで説明されているSpringトランザクションテストユーティリティを使用できます。

26
Alex Barnes

リソースについてあまり知りませんが、dao + springのセットアップがうまくできていれば、それほど難しくありません。次のものが必要です。

  1. JUNIT依存関係は明らかに。 Mavenを使用すると、次のようになります。

    <dependency>
        <groupId>junit</groupId>
        <artifactId>junit</artifactId>
        <version>4.8.2</version>
    </dependency>
    
  2. Src/test/Java内に配置するテストクラス:

    @TransactionConfiguration(defaultRollback = true)
    @ContextConfiguration({ "classpath:test-spring-context.xml" })
    @Transactional  
    @RunWith(SpringJUnit4ClassRunner.class)  
    public class SomeTests { 
        // ...
    }
    
  3. Src/test/resources内に配置されたDAOデータソースを参照する、春のセットアップのコンテキストファイル。 test-spring-context.xmlのどこかに:

    <import resource="datasource-test.xml" />
    

たとえば、Eclipseでは、プロジェクトをJUNITテストとして実行できます。

詳細が必要ですか?このソリューションは適用可能ですか?

4
Pete