2015-05-11 13 views
7

Sto facendo il mio primo progetto Java EE e voglio preformare un test. Ho cercato e scoperto che dal EJB 3.1 esiste la possibilità di utilizzare un contenitore EJB incorporato per testare il livello aziendale. Sto usando WildFly ma non ho trovato come configurare il contenitore incorporato.WildFly: come testare EJB utilizzando il contenitore incorporato?

Quindi, come configurare correttamente il contenitore incorporato e testare EJB 3.1+ con WildFly?

Apprezzo qualsiasi aiuto!

+1

Stai cercando [Arquillian] (http://www.arquillian.org), il framework di test di integrazione per Wildfly? O stai cercando ciò che è stato discusso nella domanda StackOverflow su [incorporare il contenitore EJB nei test unitari] (http://stackoverflow.com/questions/24310912/arquillian-vs-ejb-embeddable-container)? – fxnn

+0

Ciao @fxnn, questa sarebbe la seconda opzione, ho trovato molti post con lo stesso codice, ma sembra che abbia un'impostazione diversa a seconda dell'AS che stai usando, nel mio caso è Wildfly. – codenoob

+0

È possibile utilizzare il [wildfly-maven-plugin] (https://docs.jboss.org/wildfly/plugins/maven/latest/) per avviare il server durante i test e chiuderlo al termine dei test. –

risposta

5

È necessario utilizzare framework arquillian da jboss stesso http://www.mastertheboss.com/jboss-frameworks/arquillian/arquillian-tutorial.

Ciò che questo framework fa è questo: in background viene creata l'istanza di jboss. Tutto viene distribuito lì in modo da poter quindi eseguire i tuoi ejb o servlet su quel contenitore "di sfondo".

Non è facile configurarlo, quindi ti consiglio di iniziare con Jboss Tools per eclipse. Codice è quindi in questo modo:

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

io non favoriscono questo approccio, è davvero una distribuzione separata, è necessario comprendere appieno la struttura del WAR e pacchetti EJB e tutti gli altri dettagli.

È molto meglio, che i bean EJB, JPA e Servlet sono solo involucri di luce attorno alle normali classi java (POJO), dove risiede la vera logica. Quindi puoi usare semplici test unitari per testarli.

Problemi correlati