Jpa集成测试Persistence.xml

时间:2011-09-13 04:04:37

标签: spring jpa integration-testing

我正在尝试对我开发的服务执行集成测试。部分服务涉及使用daos。在这一点上,我需要做的是在我的设置中创建与持久单元的某种连接,然后我可以测试我的服务。

我基本上复制了persistence.xml并将其放在src / test / resources中并尝试

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

@Test     public void 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>

感谢。

2 个答案:

答案 0 :(得分:0)

我仍然是JPA,GlassFish等的新手,但在你的情况下,我想知道你在哪里启动数据库。对于嵌入式应用程序,我认为你需要在代码中启动它,不是吗?只是大声思考......

答案 1 :(得分:0)

Spring提供了很多help for unit- and integration-testing,例如在集成测试中管理应用程序上下文和事务,所以我不建议自己为代码中的测试创建所有持久性等等。你仔细阅读测试章节(也许可以在'net中查找一些例子)并使用Spring提供的功能。从长远来看,这将为您节省大量时间和精力。