1

私はJUnitが初めてで、レガシープロジェクトに実装しようとしています。Java EE プロジェクトです。その UI レイヤーは Flex であり、バックエンドには SQL Server データベースを備えた ORM レイヤーとして Hibernate があります。Tomcat で動作します。

私は自分で JUnit を学び、それをコードベースに実装するための小さな一歩を踏み出しています。メソッドを持つクラスがありますfindByFK。このメソッドは、クラス オブジェクトが見つかった場合、その配列を返します。

このメソッドは Web アプリケーションで正常に動作しますが、その JUnit テスト ケースを実行できません。テスト ケースはコンテナーの外にあり、データソースにアクセスできません。

コンテナー内で JUnit テスト ケースを実行するにはどうすればよいですか?

私は JUnit を使い始めたばかりで、統合の問題で過度に複雑にしたくありません。データソースや Web サーバーなどをスタブ化せずに解決する方法はありますか?

4

2 に答える 2

5

Arquillian テストを使用すると、コンテナー内で単体テストを実行できます。

次のようなことをしています:

@RunWith(Arquillian.class)
public class Test {
    @Test
    public void test(){
    //your test
    }
}

コンテナにテストをデプロイして、データベースにアクセスできるようにします。

于 2013-03-20T13:27:25.340 に答える
-1

ここには 2 つのオプションがあります。

  1. phoenix7360 からの回答のように、Datasource を使用して DB をセットアップするランナー (またはそれ以外) でテストを開始します。しかし、これは実際には定義ごとの単体テストではありません。
  2. EasyMockMockitoなどのモッキング フレームワークを使用して、DB とのやり取りをモックします。

本当に単体テストを行いたい場合は、2 番目のオプションを使用します。しかし、あなたの設定は、単体テストよりも一種の統合テストの設定ではありません。

于 2013-03-20T13:31:33.417 に答える