2011-09-13 45 views
0

我正在嘗試對我開發的服務執行集成測試。部分服務涉及使用daos。在這一點上,我需要做的是在我的設置中創建某種連接到持久單元,然後我可以測試我的服務。Jpa集成測試Persistence.xml

我基本上覆制persistence.xml並把它放在src /測試/資源,我試圖

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

@Test 公共無效testAccountDonation(){

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


} 

一種連接無法獲取驅動程序類「oracle.jdbc.driver.OracleDriver」和URL「jdbc:oracle:thin:@ data-arctichome.arcww2.com:1521:orclgdb1」。您可能指定了無效的網址。

這是我的持久性單元。

<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,例如管理集成測試中的應用程序上下文和事務,所以不是試圖爲代碼中的測試創建所有的持久性等東西,我建議你仔細閱讀測試章節(也許可以在'net'中查找一些示例)並使用Spring提供的功能。從長遠來看,這將爲您節省大量時間並拉發頭發。

+0

5年後,我會辯論這一點。 – Adam

0

我對JPA,GlassFish等仍然很陌生,但在你的情況下,我想知道你在哪裏啓動數據庫。對於嵌入式應用程序,我認爲你需要在代碼中啓動它,不是嗎?只是想着大聲.​​.....