我正在尝试对我开发的服务执行集成测试。部分服务涉及使用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>
感谢。
答案 0 :(得分:0)
我仍然是JPA,GlassFish等的新手,但在你的情况下,我想知道你在哪里启动数据库。对于嵌入式应用程序,我认为你需要在代码中启动它,不是吗?只是大声思考......
答案 1 :(得分:0)
Spring提供了很多help for unit- and integration-testing,例如在集成测试中管理应用程序上下文和事务,所以我不建议自己为代码中的测试创建所有持久性等等。你仔细阅读测试章节(也许可以在'net中查找一些例子)并使用Spring提供的功能。从长远来看,这将为您节省大量时间和精力。