SlideShare ist ein Scribd-Unternehmen logo
1 von 14
JUnit-Testing von JEE-Anwendungen
in einem embedded EJB-Containers
Troisdorf, 06.03.2015,
Jewgenij Moldawski
Insert Client/Partner logo
Eine Anwendung soll re-designed werden...
Copyright © Capgemini 2012. All Rights Reserved
2JUnit-Testing einer JEE-Anwendung in einem embedded EJB-Containers.pptx
… und hat eine Unit-Test Abdeckung von 0 %
Anforderungen an JUnit-Testing
Copyright © Capgemini 2012. All Rights Reserved
3JUnit-Testing einer JEE-Anwendung in einem embedded EJB-Containers.pptx
• Keine Umstellung für Entwickler: deswegen keine neue Tools oder
Framworks (z. B. Mockito)
• Alle Arten der Moldulen müssen getestet werden können: JPAs,
EJBs, JSF-Backing Beans
• JUnit-Tests müssen sowohl bei den Entwicklern als auch auf
einem PU-Server mit sehr beschränkten Admin-Möglichkeiten
lauffähig sein. Es dürfen ausschließlich lokale Resourcen genutzt
werden: keine zentralen DB, Appserver usw.
• Möglichst wenig Aufwand betreiben.
Folgen
Copyright © Capgemini 2012. All Rights Reserved
4JUnit-Testing einer JEE-Anwendung in einem embedded EJB-Containers.pptx
• Kein reiner Unit-Test, sondern ein integrativer: die Module werden
zwar einzeln getestet, sie bleiben währenddessen genauso
verknüpft, wie in Produktion.
• Der Test erfolgt in einem embedded EJB-Container mit einer
ebenso embeddend Datenbank.
• Das Datenbankschema wird vom JPA-Provider (in unserem Fall
Hibernate) aufgrund der JPA-Klassen vor jeder Testserie
automatisch neu angelegt.
• Die Unterschiede zwischen den produktiven und JUnit-
Umgebungen werden in Kauf genommen.
Lösung
Copyright © Capgemini 2012. All Rights Reserved
5JUnit-Testing einer JEE-Anwendung in einem embedded EJB-Containers.pptx
Modifikation der
Testumgebung
Vergleich Produktion und Junit-Testumgebung
Copyright © Capgemini 2012. All Rights Reserved
6JUnit-Testing einer JEE-Anwendung in einem embedded EJB-Containers.pptx
Container/Provider Produktion Test
EJB IBM Websphere Apache OpenEJB
JSF MyFaces MyFaces
JPA Hibernate Hibernate
CDI IBM Websphere Apache OpenWebBeans
CMP IBM Websphere Apache OpenEJB
DB IBM DB2 Apache Derby DB
JMS Websphere MQ Active MQ
JVM IBM Java IBM Java
Vergleich Produktion und Junit-Testumgebung
Copyright © Capgemini 2012. All Rights Reserved
7JUnit-Testing einer JEE-Anwendung in einem embedded EJB-Containers.pptx
Diese Unterschiede in der Umgebung verringern die Aussagekraft der JUnit-Tests ein wenig. Andererseits
helfen die Tests auf einer abgewandeltenPlattform mache Fehler zu finden, die auf der produktiven
Plattform nicht auffallen.
Abdeckung, %
Qualitätsaussage
100
Originalumgebung
Junittest-Plattformg
Glue- und Service -Code
Copyright © Capgemini 2012. All Rights Reserved
8JUnit-Testing einer JEE-Anwendung in einem embedded EJB-Containers.pptx
• Konfiguriert und startet den Embedded-Container zu Begin einer
Testserie. Dabei werden alle EJBs und JPAs aus dem Classpath
des zu testenden Moduls deployed und eine JTA-Datenquelle
konfiguriert.
• startet neue Transaktion und neuenJSF-Context für jeden neuen
Test
• bietet Wrap-Methoden für Transaktionsklammerung und fürs
Setzten der JEE-Security-Rollen
• stellt die JDBC-Connection für direkte Eingriffe in die DB aus den
Tests bereit
Integration
Copyright © Capgemini 2012. All Rights Reserved
9JUnit-Testing einer JEE-Anwendung in einem embedded EJB-Containers.pptx
• Das zu Testende Projekt muss nur eine Maven-Dependency zum
Service-Modul junithelper herstellen:
<dependency>
<groupId>com.capgemini.cgn</groupId>
<artifactId>junithelper</artifactId>
<version>1.0</version>
<scope>provided</scope>
</dependency>
• Alle weiteren notwendigen Libraries werden dann automatisch per
Maven geladen, vorausgesetzt die Maven-Installation hat
Verbindung zum populären Maven-Repository „Central“ .
Testdaten
Copyright © Capgemini 2012. All Rights Reserved
10JUnit-Testing einer JEE-Anwendung in einem embedded EJB-Containers.pptx
• Das Modul junithelper legt automatisch ein DB-Schema vor
jeder Testserie an, das den JPA-Entitäten entspricht (JPA auto
create schema)
• Für die Daten in den Tabellen sind die Junit-Tests selber
zuständig.
Demo?
Copyright © Capgemini 2012. All Rights Reserved
11JUnit-Testing einer JEE-Anwendung in einem embedded EJB-Containers.pptx
Demo?
Angebot
Copyright © Capgemini 2012. All Rights Reserved
12JUnit-Testing einer JEE-Anwendung in einem embedded EJB-Containers.pptx
• Das Service-Modul junithelper kann bei mir auf Anfrage
bezogen werden.
• Falls Sie es ausprobieren möchten, könnte ich ein wenig Starthilfe
leisten.
Danke!
Copyright © Capgemini 2012. All Rights Reserved
13JUnit-Testing einer JEE-Anwendung in einem embedded EJB-Containers.pptx
Danke fürs Zuhören!
Fragen?
www.capgemini.com
About Capgemini
With more than 120,000 people in 40 countries, Capgemini is one
of the world's foremost providers of consulting, technology and
outsourcing services. The Group reported 2011 global revenues
of EUR 9.7 billion.
Together with its clients, Capgemini creates and delivers
business and technology solutions that fit their needs and drive
the results they want. A deeply multicultural organization,
Capgemini has developed its own way of working, the
Collaborative Business ExperienceTM, and draws on Rightshore ®,
its worldwide delivery model.
Rightshore® is a trademark belonging to Capgemini
The information contained in this presentation is proprietary.
Copyright © 2012 Capgemini. All rights reserved.

Weitere ähnliche Inhalte

Andere mochten auch

Ute proceso de cosntrucciónn del plan del buen vivir liliana guaitarilla_tulcan
Ute proceso de cosntrucciónn del plan del buen vivir liliana guaitarilla_tulcanUte proceso de cosntrucciónn del plan del buen vivir liliana guaitarilla_tulcan
Ute proceso de cosntrucciónn del plan del buen vivir liliana guaitarilla_tulcanLiliana Guaitarilla
 
24 stunden bürostühle
24 stunden bürostühle24 stunden bürostühle
24 stunden bürostühlejohnmarsh12
 
Motivationale, soziale und kulturelle Faktoren im Wissensmanagement
Motivationale, soziale und kulturelle Faktoren im WissensmanagementMotivationale, soziale und kulturelle Faktoren im Wissensmanagement
Motivationale, soziale und kulturelle Faktoren im WissensmanagementAndreas Schmidt
 
Modelos atomicos 1
Modelos atomicos 1Modelos atomicos 1
Modelos atomicos 1yuyazarem
 
Como poner power point
Como poner power pointComo poner power point
Como poner power pointdiana280890
 
Dresden frauenkirche report
Dresden frauenkirche reportDresden frauenkirche report
Dresden frauenkirche reportYq Chong
 
Beste Uhren 2013 - ausgezeichnet mit dem Red Dot Award
Beste Uhren 2013 - ausgezeichnet mit dem Red Dot AwardBeste Uhren 2013 - ausgezeichnet mit dem Red Dot Award
Beste Uhren 2013 - ausgezeichnet mit dem Red Dot Awardred-dot-award
 
งานนำเสนอ1
งานนำเสนอ1งานนำเสนอ1
งานนำเสนอ1panida057
 
La educación-pública-es-posible marcel-claude
La educación-pública-es-posible marcel-claudeLa educación-pública-es-posible marcel-claude
La educación-pública-es-posible marcel-claudeCesaurio Beltrán
 

Andere mochten auch (17)

Bhrv
BhrvBhrv
Bhrv
 
Tic
TicTic
Tic
 
Ute proceso de cosntrucciónn del plan del buen vivir liliana guaitarilla_tulcan
Ute proceso de cosntrucciónn del plan del buen vivir liliana guaitarilla_tulcanUte proceso de cosntrucciónn del plan del buen vivir liliana guaitarilla_tulcan
Ute proceso de cosntrucciónn del plan del buen vivir liliana guaitarilla_tulcan
 
El agua
El aguaEl agua
El agua
 
24 stunden bürostühle
24 stunden bürostühle24 stunden bürostühle
24 stunden bürostühle
 
Motivationale, soziale und kulturelle Faktoren im Wissensmanagement
Motivationale, soziale und kulturelle Faktoren im WissensmanagementMotivationale, soziale und kulturelle Faktoren im Wissensmanagement
Motivationale, soziale und kulturelle Faktoren im Wissensmanagement
 
Ciudad E
Ciudad ECiudad E
Ciudad E
 
Modelos atomicos 1
Modelos atomicos 1Modelos atomicos 1
Modelos atomicos 1
 
Como poner power point
Como poner power pointComo poner power point
Como poner power point
 
Diapositivas
DiapositivasDiapositivas
Diapositivas
 
Dresden frauenkirche report
Dresden frauenkirche reportDresden frauenkirche report
Dresden frauenkirche report
 
Beste Uhren 2013 - ausgezeichnet mit dem Red Dot Award
Beste Uhren 2013 - ausgezeichnet mit dem Red Dot AwardBeste Uhren 2013 - ausgezeichnet mit dem Red Dot Award
Beste Uhren 2013 - ausgezeichnet mit dem Red Dot Award
 
mathe lernen
mathe lernenmathe lernen
mathe lernen
 
งานนำเสนอ1
งานนำเสนอ1งานนำเสนอ1
งานนำเสนอ1
 
Google Drive
Google DriveGoogle Drive
Google Drive
 
La educación-pública-es-posible marcel-claude
La educación-pública-es-posible marcel-claudeLa educación-pública-es-posible marcel-claude
La educación-pública-es-posible marcel-claude
 
Reflexion del uso de las tics
Reflexion del uso de las ticsReflexion del uso de las tics
Reflexion del uso de las tics
 

Ähnlich wie JUnit-Testing einer JEE-Anwendung in einem embedded EJB-Container

JEE und Micro – kein Widerspruch!
JEE und Micro – kein Widerspruch!JEE und Micro – kein Widerspruch!
JEE und Micro – kein Widerspruch!gedoplan
 
Vortragsreihe Dortmund: Unified Development Environments
Vortragsreihe Dortmund: Unified Development EnvironmentsVortragsreihe Dortmund: Unified Development Environments
Vortragsreihe Dortmund: Unified Development EnvironmentsThorsten Kamann
 
Monitoring und Profiling von Java-Anwendungen
Monitoring und Profiling von Java-AnwendungenMonitoring und Profiling von Java-Anwendungen
Monitoring und Profiling von Java-Anwendungengedoplan
 
Qualitätssicherung in Webprojekten
Qualitätssicherung in WebprojektenQualitätssicherung in Webprojekten
Qualitätssicherung in WebprojektenSebastian Springer
 
Neue Features der Java EE 6
Neue Features der Java EE 6Neue Features der Java EE 6
Neue Features der Java EE 6GFU Cyrus AG
 
Feige sein! Testen im Java-EE-Umfeld
Feige sein! Testen im Java-EE-UmfeldFeige sein! Testen im Java-EE-Umfeld
Feige sein! Testen im Java-EE-Umfeldgedoplan
 
eCATT & OpenSource - Automatisierter Test in heterogenen Systemlandschaften
eCATT & OpenSource - Automatisierter Test in heterogenen SystemlandschafteneCATT & OpenSource - Automatisierter Test in heterogenen Systemlandschaften
eCATT & OpenSource - Automatisierter Test in heterogenen SystemlandschaftenChristoph Menke
 
Macheten für den Testdschungel
Macheten für den TestdschungelMacheten für den Testdschungel
Macheten für den TestdschungelChristian Heger
 
Whitepaper QF-Test: GUI Testautomatisierung macht Spaß
Whitepaper QF-Test: GUI Testautomatisierung macht SpaßWhitepaper QF-Test: GUI Testautomatisierung macht Spaß
Whitepaper QF-Test: GUI Testautomatisierung macht SpaßClaudia Baur
 
OSMC 2010 | Java Monitoring und Troubleshooting by Rainer Jung
OSMC 2010 | Java Monitoring und Troubleshooting by Rainer JungOSMC 2010 | Java Monitoring und Troubleshooting by Rainer Jung
OSMC 2010 | Java Monitoring und Troubleshooting by Rainer JungNETWAYS
 
Crowdcode hitchhikers guide to java performance
Crowdcode hitchhikers guide to java performanceCrowdcode hitchhikers guide to java performance
Crowdcode hitchhikers guide to java performancegedoplan
 
PHPUnit - Eine kurze Einführung
PHPUnit - Eine kurze EinführungPHPUnit - Eine kurze Einführung
PHPUnit - Eine kurze Einführungfrankstaude
 
Framework-Qualität: Tests als Gütesiegel
Framework-Qualität: Tests als GütesiegelFramework-Qualität: Tests als Gütesiegel
Framework-Qualität: Tests als GütesiegelBenjamin Eberlei
 
Testen im EE-Umfeld – Seien Sie feige!
Testen im EE-Umfeld – Seien Sie feige!Testen im EE-Umfeld – Seien Sie feige!
Testen im EE-Umfeld – Seien Sie feige!gedoplan
 
Durchgestartet? Eine Einführung in die Google App Engine / Java - Reloaded!
Durchgestartet? Eine Einführung in die Google App Engine / Java - Reloaded!Durchgestartet? Eine Einführung in die Google App Engine / Java - Reloaded!
Durchgestartet? Eine Einführung in die Google App Engine / Java - Reloaded!adesso AG
 

Ähnlich wie JUnit-Testing einer JEE-Anwendung in einem embedded EJB-Container (20)

JEE und Micro – kein Widerspruch!
JEE und Micro – kein Widerspruch!JEE und Micro – kein Widerspruch!
JEE und Micro – kein Widerspruch!
 
Vortragsreihe Dortmund: Unified Development Environments
Vortragsreihe Dortmund: Unified Development EnvironmentsVortragsreihe Dortmund: Unified Development Environments
Vortragsreihe Dortmund: Unified Development Environments
 
Monitoring und Profiling von Java-Anwendungen
Monitoring und Profiling von Java-AnwendungenMonitoring und Profiling von Java-Anwendungen
Monitoring und Profiling von Java-Anwendungen
 
Qualitätssicherung in Webprojekten
Qualitätssicherung in WebprojektenQualitätssicherung in Webprojekten
Qualitätssicherung in Webprojekten
 
Die Java Plattform Strategie
Die Java Plattform StrategieDie Java Plattform Strategie
Die Java Plattform Strategie
 
CDI
CDICDI
CDI
 
Ant Maven
Ant MavenAnt Maven
Ant Maven
 
Neue Features der Java EE 6
Neue Features der Java EE 6Neue Features der Java EE 6
Neue Features der Java EE 6
 
Feige sein! Testen im Java-EE-Umfeld
Feige sein! Testen im Java-EE-UmfeldFeige sein! Testen im Java-EE-Umfeld
Feige sein! Testen im Java-EE-Umfeld
 
Arquillian
ArquillianArquillian
Arquillian
 
eCATT & OpenSource - Automatisierter Test in heterogenen Systemlandschaften
eCATT & OpenSource - Automatisierter Test in heterogenen SystemlandschafteneCATT & OpenSource - Automatisierter Test in heterogenen Systemlandschaften
eCATT & OpenSource - Automatisierter Test in heterogenen Systemlandschaften
 
Macheten für den Testdschungel
Macheten für den TestdschungelMacheten für den Testdschungel
Macheten für den Testdschungel
 
Whitepaper QF-Test: GUI Testautomatisierung macht Spaß
Whitepaper QF-Test: GUI Testautomatisierung macht SpaßWhitepaper QF-Test: GUI Testautomatisierung macht Spaß
Whitepaper QF-Test: GUI Testautomatisierung macht Spaß
 
OSMC 2010 | Java Monitoring und Troubleshooting by Rainer Jung
OSMC 2010 | Java Monitoring und Troubleshooting by Rainer JungOSMC 2010 | Java Monitoring und Troubleshooting by Rainer Jung
OSMC 2010 | Java Monitoring und Troubleshooting by Rainer Jung
 
Crowdcode hitchhikers guide to java performance
Crowdcode hitchhikers guide to java performanceCrowdcode hitchhikers guide to java performance
Crowdcode hitchhikers guide to java performance
 
Definition of Ready
Definition of ReadyDefinition of Ready
Definition of Ready
 
PHPUnit - Eine kurze Einführung
PHPUnit - Eine kurze EinführungPHPUnit - Eine kurze Einführung
PHPUnit - Eine kurze Einführung
 
Framework-Qualität: Tests als Gütesiegel
Framework-Qualität: Tests als GütesiegelFramework-Qualität: Tests als Gütesiegel
Framework-Qualität: Tests als Gütesiegel
 
Testen im EE-Umfeld – Seien Sie feige!
Testen im EE-Umfeld – Seien Sie feige!Testen im EE-Umfeld – Seien Sie feige!
Testen im EE-Umfeld – Seien Sie feige!
 
Durchgestartet? Eine Einführung in die Google App Engine / Java - Reloaded!
Durchgestartet? Eine Einführung in die Google App Engine / Java - Reloaded!Durchgestartet? Eine Einführung in die Google App Engine / Java - Reloaded!
Durchgestartet? Eine Einführung in die Google App Engine / Java - Reloaded!
 

JUnit-Testing einer JEE-Anwendung in einem embedded EJB-Container

  • 1. JUnit-Testing von JEE-Anwendungen in einem embedded EJB-Containers Troisdorf, 06.03.2015, Jewgenij Moldawski Insert Client/Partner logo
  • 2. Eine Anwendung soll re-designed werden... Copyright © Capgemini 2012. All Rights Reserved 2JUnit-Testing einer JEE-Anwendung in einem embedded EJB-Containers.pptx … und hat eine Unit-Test Abdeckung von 0 %
  • 3. Anforderungen an JUnit-Testing Copyright © Capgemini 2012. All Rights Reserved 3JUnit-Testing einer JEE-Anwendung in einem embedded EJB-Containers.pptx • Keine Umstellung für Entwickler: deswegen keine neue Tools oder Framworks (z. B. Mockito) • Alle Arten der Moldulen müssen getestet werden können: JPAs, EJBs, JSF-Backing Beans • JUnit-Tests müssen sowohl bei den Entwicklern als auch auf einem PU-Server mit sehr beschränkten Admin-Möglichkeiten lauffähig sein. Es dürfen ausschließlich lokale Resourcen genutzt werden: keine zentralen DB, Appserver usw. • Möglichst wenig Aufwand betreiben.
  • 4. Folgen Copyright © Capgemini 2012. All Rights Reserved 4JUnit-Testing einer JEE-Anwendung in einem embedded EJB-Containers.pptx • Kein reiner Unit-Test, sondern ein integrativer: die Module werden zwar einzeln getestet, sie bleiben währenddessen genauso verknüpft, wie in Produktion. • Der Test erfolgt in einem embedded EJB-Container mit einer ebenso embeddend Datenbank. • Das Datenbankschema wird vom JPA-Provider (in unserem Fall Hibernate) aufgrund der JPA-Klassen vor jeder Testserie automatisch neu angelegt. • Die Unterschiede zwischen den produktiven und JUnit- Umgebungen werden in Kauf genommen.
  • 5. Lösung Copyright © Capgemini 2012. All Rights Reserved 5JUnit-Testing einer JEE-Anwendung in einem embedded EJB-Containers.pptx Modifikation der Testumgebung
  • 6. Vergleich Produktion und Junit-Testumgebung Copyright © Capgemini 2012. All Rights Reserved 6JUnit-Testing einer JEE-Anwendung in einem embedded EJB-Containers.pptx Container/Provider Produktion Test EJB IBM Websphere Apache OpenEJB JSF MyFaces MyFaces JPA Hibernate Hibernate CDI IBM Websphere Apache OpenWebBeans CMP IBM Websphere Apache OpenEJB DB IBM DB2 Apache Derby DB JMS Websphere MQ Active MQ JVM IBM Java IBM Java
  • 7. Vergleich Produktion und Junit-Testumgebung Copyright © Capgemini 2012. All Rights Reserved 7JUnit-Testing einer JEE-Anwendung in einem embedded EJB-Containers.pptx Diese Unterschiede in der Umgebung verringern die Aussagekraft der JUnit-Tests ein wenig. Andererseits helfen die Tests auf einer abgewandeltenPlattform mache Fehler zu finden, die auf der produktiven Plattform nicht auffallen. Abdeckung, % Qualitätsaussage 100 Originalumgebung Junittest-Plattformg
  • 8. Glue- und Service -Code Copyright © Capgemini 2012. All Rights Reserved 8JUnit-Testing einer JEE-Anwendung in einem embedded EJB-Containers.pptx • Konfiguriert und startet den Embedded-Container zu Begin einer Testserie. Dabei werden alle EJBs und JPAs aus dem Classpath des zu testenden Moduls deployed und eine JTA-Datenquelle konfiguriert. • startet neue Transaktion und neuenJSF-Context für jeden neuen Test • bietet Wrap-Methoden für Transaktionsklammerung und fürs Setzten der JEE-Security-Rollen • stellt die JDBC-Connection für direkte Eingriffe in die DB aus den Tests bereit
  • 9. Integration Copyright © Capgemini 2012. All Rights Reserved 9JUnit-Testing einer JEE-Anwendung in einem embedded EJB-Containers.pptx • Das zu Testende Projekt muss nur eine Maven-Dependency zum Service-Modul junithelper herstellen: <dependency> <groupId>com.capgemini.cgn</groupId> <artifactId>junithelper</artifactId> <version>1.0</version> <scope>provided</scope> </dependency> • Alle weiteren notwendigen Libraries werden dann automatisch per Maven geladen, vorausgesetzt die Maven-Installation hat Verbindung zum populären Maven-Repository „Central“ .
  • 10. Testdaten Copyright © Capgemini 2012. All Rights Reserved 10JUnit-Testing einer JEE-Anwendung in einem embedded EJB-Containers.pptx • Das Modul junithelper legt automatisch ein DB-Schema vor jeder Testserie an, das den JPA-Entitäten entspricht (JPA auto create schema) • Für die Daten in den Tabellen sind die Junit-Tests selber zuständig.
  • 11. Demo? Copyright © Capgemini 2012. All Rights Reserved 11JUnit-Testing einer JEE-Anwendung in einem embedded EJB-Containers.pptx Demo?
  • 12. Angebot Copyright © Capgemini 2012. All Rights Reserved 12JUnit-Testing einer JEE-Anwendung in einem embedded EJB-Containers.pptx • Das Service-Modul junithelper kann bei mir auf Anfrage bezogen werden. • Falls Sie es ausprobieren möchten, könnte ich ein wenig Starthilfe leisten.
  • 13. Danke! Copyright © Capgemini 2012. All Rights Reserved 13JUnit-Testing einer JEE-Anwendung in einem embedded EJB-Containers.pptx Danke fürs Zuhören! Fragen?
  • 14. www.capgemini.com About Capgemini With more than 120,000 people in 40 countries, Capgemini is one of the world's foremost providers of consulting, technology and outsourcing services. The Group reported 2011 global revenues of EUR 9.7 billion. Together with its clients, Capgemini creates and delivers business and technology solutions that fit their needs and drive the results they want. A deeply multicultural organization, Capgemini has developed its own way of working, the Collaborative Business ExperienceTM, and draws on Rightshore ®, its worldwide delivery model. Rightshore® is a trademark belonging to Capgemini The information contained in this presentation is proprietary. Copyright © 2012 Capgemini. All rights reserved.