我正在使用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