2010-05-05 63 views
5

有沒有人做過這個或試圖爲一個已有的項目做到這一點?
似乎有兩個選擇去與這裏,無論是使用embedded EJB API基本上下面的類EJB 3.1嵌入式API - 單元測試EJB + JPA實體

javax.ejb.embeddable.EJBContainer 

一個希望將配置的GlassFish v3的安裝可用(應用程序範圍的資源將使它更容易些)。

使用嵌入式GlassFish的jar文件和embedded glassfish API

我要尋找從別人的反饋誰擁有或者是誰在這樣做的過程中,鏈接,博客等用一個簡單的EJB &測試用例替代一毛錢一打。

如果您已經完成了與其他任何EJB 3.1容器的共享,請隨時分享。

  1. 您是否因爲其他原因而使用任何特定的測試框架?
  2. 您使用了哪個JPA 2.0實現,是否有特殊原因?
  3. 如果您使用glassfish您使用了上述哪種策略?如果不是那麼你使用哪個EJB 3.1容器?
  4. 如果你成功地做到了這一點,是否值得付出努力,並且你會爲另一個現有項目再次做到這一點?

回答

4

似乎有兩個選擇去與這裏,無論是使用嵌入式EJB API(...),這需要一個配置的GlassFish v3的安裝可用。

不,您可以也在您的項目中使用最小的域。

我正在尋找有人或正在做這件事的人的反饋,通過簡單的EJB &測試用例鏈接到博客等等。

我所做的EJB 3.1和JPA 集成測試上(下Maven的)我的寵物項目,由Unit Testing EJBs and JPA with Embeddable GlassFish啓發。讀它絕對是值得的。

您是否因其他原因而使用任何特定的測試框架?

都能跟得上。

您使用了哪個JPA 2.0實現,是否有特殊原因?

我用EclipseLink(因爲當時可用)。

如果您使用glassfish您使用了上述哪種策略?如果沒有那麼EJB 3。你使用了1個容器?

我使用嵌入式EJB API,我打算在其他Java EE 6容器可用時運行我的代碼。

如果您成功地做到了這一點,是否值得努力,您是否會爲另一個現有項目再次做到這一點?

嗯,我認爲集成/功能測試纔有價值,如果發現嵌入式EJB API是非常好的了點。即使我不認爲我的樣本是真實生活項目,使用它也不是一件痛苦的事情。

對於更復雜的場景,我一直關注maven-embedded-glassfish-plugin(另請參閱this answer)。

1

我寫了一個small tutorial on my blog使用嵌入式glassfish 3.1來使用javax.ejb.embeddable.EJBContainer進行單元測試EJB。有一些陷阱,我通過修改默認的嵌入式glassfish域並將一些屬性放到createEJBContainer()調用中來解決。