JUnit-Testing von JEE-Anwendungen
in einem embedded EJB-Containers
Troisdorf, 06.03.2015,
Jewgenij Moldawski
Insert Client...
Eine Anwendung soll re-designed werden...
Copyright © Capgemini 2012. All Rights Reserved
2JUnit-Testing einer JEE-Anwendu...
Anforderungen an JUnit-Testing
Copyright © Capgemini 2012. All Rights Reserved
3JUnit-Testing einer JEE-Anwendung in einem...
Folgen
Copyright © Capgemini 2012. All Rights Reserved
4JUnit-Testing einer JEE-Anwendung in einem embedded EJB-Containers...
Lösung
Copyright © Capgemini 2012. All Rights Reserved
5JUnit-Testing einer JEE-Anwendung in einem embedded EJB-Containers...
Vergleich Produktion und Junit-Testumgebung
Copyright © Capgemini 2012. All Rights Reserved
6JUnit-Testing einer JEE-Anwen...
Vergleich Produktion und Junit-Testumgebung
Copyright © Capgemini 2012. All Rights Reserved
7JUnit-Testing einer JEE-Anwen...
Glue- und Service -Code
Copyright © Capgemini 2012. All Rights Reserved
8JUnit-Testing einer JEE-Anwendung in einem embedd...
Integration
Copyright © Capgemini 2012. All Rights Reserved
9JUnit-Testing einer JEE-Anwendung in einem embedded EJB-Conta...
Testdaten
Copyright © Capgemini 2012. All Rights Reserved
10JUnit-Testing einer JEE-Anwendung in einem embedded EJB-Contai...
Demo?
Copyright © Capgemini 2012. All Rights Reserved
11JUnit-Testing einer JEE-Anwendung in einem embedded EJB-Containers...
Angebot
Copyright © Capgemini 2012. All Rights Reserved
12JUnit-Testing einer JEE-Anwendung in einem embedded EJB-Containe...
Danke!
Copyright © Capgemini 2012. All Rights Reserved
13JUnit-Testing einer JEE-Anwendung in einem embedded EJB-Container...
www.capgemini.com
About Capgemini
With more than 120,000 people in 40 countries, Capgemini is one
of the world's foremost ...
Nächste SlideShare
Wird geladen in …5
×

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

430 Aufrufe

Veröffentlicht am

Eine einfache Testumgebung für JUnit-Test einer JEE-Anwendung mit minimaler Umstellung für laufende Entwicklung.

Veröffentlicht in: Software
0 Kommentare
0 Gefällt mir
Statistik
Notizen
  • Als Erste(r) kommentieren

  • Gehören Sie zu den Ersten, denen das gefällt!

Keine Downloads
Aufrufe
Aufrufe insgesamt
430
Auf SlideShare
0
Aus Einbettungen
0
Anzahl an Einbettungen
18
Aktionen
Geteilt
0
Downloads
0
Kommentare
0
Gefällt mir
0
Einbettungen 0
Keine Einbettungen

Keine Notizen für die Folie

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

  1. 1. JUnit-Testing von JEE-Anwendungen in einem embedded EJB-Containers Troisdorf, 06.03.2015, Jewgenij Moldawski Insert Client/Partner logo
  2. 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. 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. 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. 5. Lösung Copyright © Capgemini 2012. All Rights Reserved 5JUnit-Testing einer JEE-Anwendung in einem embedded EJB-Containers.pptx Modifikation der Testumgebung
  6. 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. 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. 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. 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. 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. 11. Demo? Copyright © Capgemini 2012. All Rights Reserved 11JUnit-Testing einer JEE-Anwendung in einem embedded EJB-Containers.pptx Demo?
  12. 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. 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. 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.

×