2015-05-11 22 views
7

İlk Java EE projemi yapıyorum ve bir testi önceden oluşturmak istiyorum. EJB 3.1'den beri, iş katmanını test etmek için gömülü bir EJB kabı kullanma olasılığının bulunduğunu araştırdım ve buldum. WildFly kullanıyorum ama gömülü kapsayıcıyı nasıl yapılandıracağımı bulamadım.WildFly: EJB'yi gömülü kapsayıcı kullanarak nasıl test edebilirim?

Peki, gömülü kapsayıcıyı düzgün şekilde nasıl yapılandırılır ve EJBs 3.1+ WildFly ile nasıl test edilir?

Herhangi bir yardım için minnettarım!

+1

[Arquillian] (http://www.arquillian.org), Wildfly için Entegrasyon Testleri çerçevesini mi arıyorsunuz? Ya da [EJB Konteynerini Birim Testlerine katmak] ile ilgili olarak Stackoverflow sorusunda neler konuşulduğunu araştırıyorsunuz (http://stackoverflow.com/questions/24310912/arquillian-vs-ejb-embeddable-container)? – fxnn

+0

Merhaba @ fxnn, bu ikinci seçenek olurdu, aynı kodla birçok gönderi buldum, fakat kullandığınız AS'ye bağlı olarak farklı bir kurulumu var gibi görünüyor, benim durumumda Wildfly. – codenoob

+0

Testler sırasında sunucuyu başlatmak için [wildfly-maven-plugin] 'i (https://docs.jboss.org/wildfly/plugins/maven/latest/) kullanabilir ve testler tamamlandığında kapatabilirsiniz. –

cevap

5

Çerçeve arquillian'i jboss'un kendisinden http://www.mastertheboss.com/jboss-frameworks/arquillian/arquillian-tutorial kullanmanız gerekir.

Bu çerçeve nedir: arka planda jboss örneği oluşturulur. Her şey orada konuşlandırılıyor, böylece ejb'lerinizi veya servletlerinizi bu "arka plan" kapsayıcısında çalıştırabilirsiniz.

Yapılandırmak kolay değildir, bu nedenle tutulması için Jboss Tools ile başlamanızı öneririm. Kod böyle sonra görünür:

@Deployment 
public static Archive<?> createTestArchive() { 
    return ShrinkWrap.create(WebArchive.class, "test-demo.war") 
      .addAsResource("META-INF/persistence.xml") 
      .addAsWebInfResource(EmptyAsset.INSTANCE, "beans.xml"); 
} 

Ben bu yaklaşımı lehine değil, gerçekten ayrı bir dağıtım var, tam WAR ve EJB paketleri ve diğer tüm detayların yapısını anlamak gerekir.

Gerçekten çok daha iyisiniz, EJB'niz, JPA'larınız ve Servlet fasulyeleriniz, gerçek mantığın bulunduğu normal java sınıfları (POJO'lar) etrafındaki hafif sarmalayıcılardır. Daha sonra bunları test etmek için düz ünite testlerini kullanabilirsiniz.

İlgili konular