我正在使用OpenJPA 2.0.0,Jersey 1.3和JUnit 4.8.1构建应用程序。OpenJPA,Jersey,JUnit:为我的单元测试使用不同的持久性单元?
我设置了它,所以我在persistence.xml中定义了两个不同的持久性单元:“default”和“unittest”。默认设置为连接到Oracle实例,而unittest设置为连接到本地H2DB嵌入式数据库文件。我这样做是为了始终使用一个干净的数据库来启动我的单元测试,该数据库中包含一些已知的数据,这些数据可以在每次单元测试运行之间被覆盖。
问题是,现在我想使用Jersey Testing Framework来测试我的实际Web服务,而不仅仅是程序的底层。我的根资源类不加载unittest持久性单元,它们总是加载默认值。
所以我可能需要做的是注入其中持久单元应该用于实例化EntityManager的根资源类,然后有一些方法来注入单元测试时,我跑我的测试,但默认情况下注入除此以外。但我想不出有什么好办法做到这一点。
我是Java EE开发的新手,这可能很明显。
任何帮助?
EntityManager或者说EntityManagerFactory来自哪里?你是通过调用Persistence.createEntityManagerFactory()来创建它,还是由某个框架注入?你没有提到你的问题中的任何一种框架。 – 2011-04-05 17:45:36