2011-09-13 28 views
0

私が開発したサービスの統合テストを実行しようとしています。サービスの一部には、daosの使用が含まれます。この時点で私が行う必要があるのは、セットアップで永続ユニットへの何らかの接続を作成してから、サービスをテストすることです。Jpa統合テストPersistence.xml

私は基本的にpersistence.xmlをコピーして、SRC /テスト/リソースに入れて@Test 公共ボイドtestAccountDonation(){

AccountResult result = AccountService.getDonationAmount(); 
    Assert.assertEquals("Success", result.getResultCode()); 


} 

接続ができませんでした

@Before 
public void beginTransaction() { 
    emf = Persistence.createEntityManagerFactory(dao-test"); 
    em = emf.createEntityManager(); 
} 

をしようとしていますドライバクラス "oracle.jdbc.driver.OracleDriver"とURL "jdbc:oracle:thin:@ data-arctichome.arcww2.com:1521:orclgdb1"で取得できます。無効なURLを指定した可能性があります。

ここは私のパーシスタンスユニットです。

<persistence-unit name="dao-test" 
    transaction-type="RESOURCE_LOCAL"> 

    <properties> 
     <property name="openjpa.ConnectionDriverName" 
      value="oracle.jdbc.driver.OracleDriver" /> 


     <property name="openjpa.ConnectionURL" 
      value="jdbc:oracle:thin:@xxxxxxxxx:orclgdb1" /> 
     <property name="openjpa.ConnectionUserName" value="xxxxxx" /> 
     <property name="openjpa.ConnectionPassword" 
      value="xxxxxx" /> 
    </properties> 
</persistence-unit> 

ありがとうございます。

答えて

0

Springは、統合テストでのアプリケーションコンテキストとトランザクションの管理など、多くの場合、help for unit- and integration-testingを提供しています。これは、コード内のテストのためにすべての永続性などを作成しようとするのではなく、私はあなたがテストの章を読んで(そして、おそらくネットでいくつかの例を探して)、Springが提供する機能を使うことをお勧めします。それはあなたに時間を節約し、長期的には髪を引っ張ってくれるでしょう。

+0

5年後、私はその点について議論するだろう。 – Adam

0

私はまだJPA、GlassFishなどの新機能を使用していますが、あなたの場合はどこでデータベースを起動しているのでしょうか?組み込みアプリケーションの場合、コード内で起動する必要があると思います。大声で考えてみよう...