Sonntag, 23. Januar 2011

Integrational Unit Tests mit EJB3.1

Ich bin gerade damit beschäftigt, ein paar Integrationstest mit JUnit zu schreiben. Im speziellen handelt es sich bei den zu testenden Klassen hier um stateless session beans (SSB). Da meine derzeitige Anwendung unter GlassFish 3 läuft (JavaEE6, JSF2, EJB3.1, JPA2), entschied ich mich, die SSBs mit einem sogenannten embedded EJBContainer zu testen. Ein ganz simples Beispiel, wie das aussehen könnte, findet man in Adam Bien´s Blog:

http://www.adam-bien.com/roller/abien/entry/embedding_ejb_3_1_container

Dabei verwendete ich die neueste Maven-Dependency, die ich finden konnte. Da sie nicht als SNAPSHOT markiert war, bin ich davon ausgegangen, daß sie funktioniert (was sich leider in dem Fall als Fehler herausgestellt hat).


<dependency>
<groupId>org.glassfish.extras</groupId>
<artifactId>glassfish-embedded-all</artifactId>
<version>3.0.1</version>
<scope>provided</scope>
</dependency>


Nach einigem Testen (der Server fuhr nicht hoch, es traten Fehlermeldungen auf und es dauerte ewig, bis der Unittest fehlschlug) änderte ich die Versionsnummer und ging auf 3.0 zurück. Und siehe da, das Problem war gelöst, der Server läuft.

Vielleicht hilft diese Warnung ja dem einen oder anderen, etwas Zeit einzusparen bei der Fehlersuche.

Update: Hier gibts noch einen weiteren netten Artikel zum Thema EJB3 - Unittests:
http://www.bookware.de/kaffeeklatsch/archiv/KaffeeKlatsch-2010-07.pdf

Update 2: http://nosoftskills.com/2010/11/unit-testing-services-embedded-glassfish/

Und hier noch ein Verweis auf die Dokumentation des embedded Glassfish:
http://download.oracle.com/docs/cd/E19798-01/821-1754/gjldt/index.html

Keine Kommentare:

Kommentar veröffentlichen

Hier kann jeder (auch unregistrierte) Leser seine Meinung kundtun...