Enterprise JavaBeans Überblick

Ähnliche Dokumente
JUnit 4 Tutorial. Wolfgang Stöttinger

JUnit - Test Driven Development. Bernhard Frey, Thorsten Stratmann, Jackson Takam, Michel Müller 1

JUnit. Software-Tests

Enterprise JavaBeans Überblick

Benutzung von Eclipse zur Entwicklung von Java EE 5 Anwendungen mit dem JBoss Application Server

Systematisches Testen

Enterprise JavaBeans Überblick

Benutzung von Eclipse zur Entwicklung von Java EE 5 Anwendungen mit dem JBoss Application Server 5.0

Test-driven development JUnit-Test. Lars Varain

Das Test-Framework JUnit ETIS SS04

Testen mit JUnit. Motivation

Testgetriebene Entwicklung mit JUnit4

Web-Testen mit JUnit und HttpUnit. Kai Schmitz-Hofbauer Lehrstuhl für Software-Technik Ruhr-Universität Bochum

Unit Tests mit Junit 4. Dario Borchers

Unit-Test Theorie und Praxis. Stephan Seefeld, INGTES AG

Programmiertechnik II

EJB Beispiel. JEE Vorlesung 10. Ralf Gitzel

Softwaretests. verschiedene Testformen Testen im V-Modell: Anwendungsszenarien. Tests. Tests. Tests. Anforderungs- definition. Abnahmetest.

Programmierung von Client/Server- Anwendungen

Liste V Enterprise JavaBeans

Erfahrungen und Erkenntnisse. Klaus Richarz, HBT GmbH

Swp08-6 Verantwortliche: Yundensuren, Baigalmaa. Testkonzept

Session Beans & Servlet Integration. Ralf Gitzel ralf_gitzel@hotmail.de

OOSE4 Testen mit BlueJ/JUnit 4

JUnit. Unit testing unter Java

Unit Testing mit JUnit. Dr. Andreas Schroeder

Programmieren I. Übersicht. Vorlesung 12. Handout S. 1. Martin Schultheiß. Hochschule Darmstadt Wintersemester 2010/2011

Programmierprojekt. Anne0e Bieniusa Sommersemester 2014

3. Dokumentieren und Testen Advanced Programming Techniques Prof. Dr. Bernhard Humm FB Informatik, Hochschule Darmstadt

Enterprise Java Beans Einführung

Multimedia im Netz Wintersemester 2012/13

Allgemein: Klassen testbar machen. 5. Mocking. Mocks programmieren. Zusammenspiel von Klassen testen

Schritt 4: Hallo Enterprise Bean

Entwicklung von Web-Anwendungen auf JAVA EE Basis

Model-Driven Development in der Praxis. mit objectif. Herzlich willkommen

Erstellung eines Frameworks für Shop Systeme im Internet auf Basis von Java

Übung 1: Object Inspector

Geschäftskomponenten mit EJB 3.1

Enterprise JavaBeans Überblick: 17. Enterprise Information System Schicht

Softwareentwicklung mit Enterprise JAVA Beans

Java Schulung. Objektorientierte Programmierung in Java Teil IV: Testen mit JUnit. Prof. Dr. Nikolaus Wulff

Benutzung eines Login Modules zur Authentifizierung unter JBoss 5.0

Oracle Enterprise Scheduler (ESS) Unleashed Carsten Wiesbaum esentri AG Ettlingen Schlüsselworte Einleitung Oracle Enterprise Scheduler (ESS)

Info: Standard DO-178B. 5. Mocking. Zusammenspiel von Klassen testen. Allgemein: Klassen testbar machen

Unit Tests. Programmiermethodik. Eva Zangerle Universität Innsbruck

FH LU JEE Vorlesung SS Ralf Gitzel

Automatisiertes Testen von Java EE-Applikationen mit Arquillian

Software-Engineering Software-Management

Markus Wichmann. Testen von Java Code mit. JUnit

Benutzung eines Login Modules zur Authentifizierung unter JBoss 4.2.x

Spring Dynamic Modules for OSGi Service Platforms

-Testen verteilter Anwendungen

FH LU JEE Vorlesung SS Ralf Gitzel

Das automatisierte Testen mit JUnit

Bean-Mapping mit MapStruct

Kurzanleitung JUnit. 1 Grundlagen. 1.1 Begriffsdefinitionen. 1.2 Empfehlungen

JAX-RS 2.0 REST mit Java EE 7

Mock-Objekte. Universität Karlsruhe (TH) Fakultät für Informatik Lehrstuhl für Programmiersysteme. Forschungsuniversität gegründet 1825

Programmieren. JUnit-Tests. Heusch -- Ratz -- Institut für Angewandte Informatik

Übungsaufgabe Transaktion als Middleware

Test-Driven Design: Ein einfaches Beispiel

Java für C++ Programmierer

Gregor Raschke 2008 HIBERNATE. Eine Einführung

Client/Server-Programmierung

Client/Server-Programmierung

G s e a s m a t m ar a ch c i h tek e tur u I und IoC

Micro Focus Unit Testing Framework in Visual COBOL 3.0. Rolf Becking 29.August 2017

Modernisierung von Forms durch neues Look&Feel

Testen von graphischen Benutzeroberflächen. 26. Juni 2013

Komponenten-basierte Entwicklung Teil 6: Einführung in JUnit

Software Engineering II

Rene Böing, Alexander Kuhn, Marc Wilmes Einführung in Spring und Hibernate

Warum EJB Technologie (1)?

Oliver Paulus, 7. Februar Spring Framework Einführung. Oliver Paulus, Was ist Spring?

Inhaltsverzeichnis. Enterprise Java im Überblick. Technologien der Java2 Enterprise Edition

Remote Method Invocation

Qualität von Software - Prof. Schlingloff, Lackner - SS2013 DYNAMISCHER TEST. Whitebox Testen mit JUnit

Testen mit JUnit. Martin Wirsing. Ziele. Arten von Tests. Testen. Whitebox-Test. Unit-Test

Testen mit JUnit. Martin Wirsing. Ziele. Arten von Tests. Testen. Lernen Unit Tests zu schreiben Lernen mit Unit-Testen mit JUnit durchzuführen

Persistenz. Ralf Gitzel

Testen mit JUnit. Martin Wirsing. Ziele. in Zusammenarbeit mit Michael Barth, Philipp Meier und Gefei Zhang

Programmiermethodik. Übung 3

Multimedia im Netz. Wintersemester 2011/12. Übung 10. Betreuer: Verantwortlicher Professor: Sebastian Löhmann. Prof. Dr.

Transkript:

Enterprise JavaBeans Überblick 1. Überblick Java EE 5 und Komponententechnologien 2. Einführung Java EE 5 Plattform 3. Enterprise JavaBeans Architektur 4. Ressourcen Management und Primäre Services 5. Java Persistence: Entity Manager 6. Objekt-Relationales Mapping 7. Entity Bean Beziehungen 9. Architektur der Web-Schicht, JavaServer Faces mit JBoss / Eclipse 10. Queries 11. Value Objects 12. Session Facade 13. Transaktionen und Concurrency 14. Ergänzungen zu EJBs 15. UML Modellierung und EJBs 16. Session Beans 17. JavaServer Faces Prof. Dr. Björn Dreher Liste V Enterprise JavaBeans 332 Enterprise JavaBeans Überblick: 8.1 Einleitung 8.3 Anwendung mit Eclipse und dem JBoss Application Server Prof. Dr. Björn Dreher Liste V Enterprise JavaBeans 333 1

8.1 Einleitung Bestandteil der iterativen und agilen XP-Methode Schreiben Sie den Test zuerst! Zuerst Testcode schreiben Erst dann die Klasse, die getestet werden soll Ergebnis: Entwickler schreibt Unit Testing Code für fast den gesamten Produktionscode Rhythmus: Ein wenig Testcode Ein wenig Produktionscode Dieser muss Test bestehen Dann kommt der nächste Testcode Prof. Dr. Björn Dreher Liste V Enterprise JavaBeans 334 8.1 Einleitung Vorteile Unit Tests werden wirklich geschrieben Zufriedenheit des Programmierers Kann ich den Code so schreiben, dass er diesen Test besteht? Interface und Verhalten werden im Detail geklärt Hauptvorteil Man muss sich Code vorstellen Alle Einzelheiten der öffentlichen Sicht des Codes Name, Parameter, Rückgabewert, Verhalten Beweisbare, wiederholbare, automatisierte Verifizierung Testbasis wächst ständig (10, 50, 500, Tests) Leichte Verifizierung der Korrektheit Läuft automatisch ab Prof. Dr. Björn Dreher Liste V Enterprise JavaBeans 335 2

8.1 Einleitung Vorteile (fortgesetzt) Vertrauen, Dinge ändern zu können Bei Änderungen kann man ganz leicht testen, ob die bisherigen Tests immer noch bestanden werden Unit Testing Frameworks xunit-familie (www.junit.org) JUnit (Kent Beck, Erich Gamma): Java Versionen 3 (bis Java 1.4.x) und 4 (ab Java 5 mit Annotationen) NUnit:.NET (managed code) CppUnit: C++ (Visual C++, MFC) Prof. Dr. Björn Dreher Liste V Enterprise JavaBeans 336 Enterprise JavaBeans Überblick: 8.1 Einleitung 8.3 Anwendung mit Eclipse und dem JBoss Application Server Prof. Dr. Björn Dreher Liste V Enterprise JavaBeans 337 3

Ablauf eines Tests Das Ding, das getestet werden soll, erstellen Heißt manchmal fixture, etwa: Testobjekt Bei uns ist es eine Session Bean der EJB Schicht Über LookUp erreichbar Etwas mit ihm tun also einige seiner Methoden aufrufen, die getestet werden sollen Prüfen, ob die Ergebnisse den Erwartungen entsprechen Prof. Dr. Björn Dreher Liste V Enterprise JavaBeans 338 Testklasse Bestandteil eines weiteren Application Clients Von Eclipse als Template erstellbar Verwendet Package org.junit Template implementiert schon verschiedene Unit Testing Verhaltensweisen Eine oder mehrere Testmethoden pro zu testender public Methode der Session Bean Ausnahmen: Triviale Methoden, z.b. setter und getter Gekennzeichnet durch Annotation: @Test Werden alle automatisch ausgeführt Prof. Dr. Björn Dreher Liste V Enterprise JavaBeans 339 4

Beispiel: Customer Projekt package com.titan.test; import java.util.collection; import java.util.list; import javax.naming.context; import javax.rmi.portableremoteobject; import org.junit.* import com.titan.customer.customer; import com.titan.customer.phone; import com.titan.session.sessionfacaderemote; public class TestCase { private static SessionFacadeRemote session = null; Definition eines Test-Cases Konstruktor; Weitergabe an Vorfahren Prof. Dr. Björn Dreher Liste V Enterprise JavaBeans 340 Beispiel: Customer Projekt (fortgesetzt) @BeforeClass public static void setupbeforeclass() throws Exception { // Get reference to session bean Properties props = new Properties(); Einmal vor allen Tests /* Das folgende brauchen wir, wenn die JBoss Security aktiviert ist props.setproperty(context.security_principal, "admin"); props.setproperty(context.security_credentials, "admin"); props.setproperty(context.initial_context_factory, "org.jboss.security.jndi.jndilogininitialcontextfactory"); */ // Diese Property gilt nur bei nicht aktivierter JBoss Security props.setproperty(context.initial_context_factory, "org.jnp.interfaces.namingcontextfactory"); // Diese Properties gelten immer props.setproperty(context.url_pkg_prefixes, "org.jboss.naming.client"); props.setproperty(context.provider_url, "jnp://localhost:1099"); props.setproperty("j2ee.clientname", "CustomerTestClient"); Prof. Dr. Björn Dreher Liste V Enterprise JavaBeans 341 5

Beispiel: Customer Projekt (fortgesetzt) try { Context ctx = new InitialContext(props); session = (SessionFacadeRemote) ctx.lookup("sessionfacadebean"); catch (Exception ex) { System.out.println("Exception bei LookUp"); ex.printstacktrace(); Facade nur einmal holen // Lösche alle existierenden Kunden (ggf. kaskadierend) List<Customer> liste = session.getallcustomers(); System.out.println("Wir löschen jetzt " + liste.size() + " Kunden!"); for (Customer customer : liste) { session.deletecustomer(customer.getid()); Ausgangszustand Prof. Dr. Björn Dreher Liste V Enterprise JavaBeans 342 Aufräumen nach allen Tests @AfterClass public static void teardownafterclass() throws Exception { Beispiel: Customer Projekt (fortgesetzt) @Before public void setup() throws Exception { @After public void teardown() throws Exception { Vor jedem einzelnen Test Nach jedem einzelnen Test Prof. Dr. Björn Dreher Liste V Enterprise JavaBeans 343 6

Beispiel: Customer Projekt (fortgesetzt) @Test Testmethode public void testsinglephoneexchange() { Customer cust1 = new Customer("Meier", "Hans", true); Customer cust2 = new Customer("Müller", "Kurt", true); Long id1 = session.createcustomer(cust1); Long id2 = session.createcustomer(cust2); Phone phone1 = new Phone("101", (byte)1); Phone phone2 = new Phone("102", (byte)2); Phone phone3 = new Phone("203", (byte)1); session.newcustomerphone(id1, phone1); session.newcustomerphone(id1, phone2); Erstelle ein paar Entities session.newcustomerphone(id2, phone3); Prof. Dr. Björn Dreher Liste V Enterprise JavaBeans 344 Beispiel: Customer Projekt (fortgesetzt) session.changecustomerphone(id1, id2, (byte)2); Zu testende Methode asserttrue("customer 1 sollte jetzt nur noch 1 Phone haben", session.getcustomer(id1).getphonenumbers().size() == 1); asserttrue("customer 2 sollte jetzt genau 2 Phones haben", session.getcustomer(id2).getphonenumbers().size() == 2); Prüfung auf Korrektheit Prof. Dr. Björn Dreher Liste V Enterprise JavaBeans 345 7

Enterprise JavaBeans Überblick: 8.1 Einleitung 8.3 Anwendung mit Eclipse und dem JBoss Application Server Prof. Dr. Björn Dreher Liste V Enterprise JavaBeans 346 Vorbereitung Einen neuen (Test-) Application Client anlegen und in das EAR Projekt aufnehmen Keine Main Klasse erzeugen lassen Deployment-Deskriptor erzeugen lassen Prof. Dr. Björn Dreher Liste V Enterprise JavaBeans 347 8

Test Application Client In den Properties unter J2EE Module Dependencies die Abhängigkeit zu dem EJB Projekt definieren Prof. Dr. Björn Dreher Liste V Enterprise JavaBeans 348 Test Application Client Als Projekt-Referenz ebenfalls das EJB-Projekt aufnehmen: Prof. Dr. Björn Dreher Liste V Enterprise JavaBeans 349 9

Erstellen des Test Cases In dem Test Application Client mit New aus der Rubrik Java einen JUnit Test Case erzeugen Prof. Dr. Björn Dreher Liste V Enterprise JavaBeans 350 Erstellen des Test Cases Wählen: New JUnit 4 test Package-Name Methodenrümpfe Finish drücken Prof. Dr. Björn Dreher Liste V Enterprise JavaBeans 351 10

Bibliothek einbinden Auf Nachfrage dem Projekt die korrekte Bibliothek zuordnen lassen OK drücken Dann: Testmethoden hinzufügen, wie oben gesehen Prof. Dr. Björn Dreher Liste V Enterprise JavaBeans 352 Test vorbereiten Neues Projekt dem Server zuordnen sollte automatisch als Unterprojekt geschehen sein Den Server starten Deployen (Publish) Test starten Im Kontextmenü des Test Client Application Projektes über Run as JUnit Test starten Prof. Dr. Björn Dreher Liste V Enterprise JavaBeans 353 11

Test ausführen Ausgabe Tab JUnit öffnen Die Tests sind o.k. Prof. Dr. Björn Dreher Liste V Enterprise JavaBeans 354 12