SlideShare ist ein Scribd-Unternehmen logo
1 von 18
[mit uns...]
   richtig testen




                    Testen mit Arquillian
                     Würzburg, den 12. Oktober 2012
Beschreibung der Veranstaltung:


     Integrationstest mit Arquillian

     "Arquillian is a revolutionary testing platform for enterprise Java."

     Mit diesen Slogan wirbt Red Hat für Arquillian.
     Die Schulung soll aufzeigen was hinter Arquillian steckt.

     Im ersten Teil der Schulung werden die Grundlagen von Arquillian
     vorgestellt. Im Anschluss werden diese mit Beispielen vertieft.

     Zielgruppe: Entwickler / Tester
Agenda
                                     3




         A Wo ist das Problem?

         B Was leistet Arquillian?

         C Grundlagen / Theorie

         D Coding
Wo ist das Problem?
Benötigt es ein weiteres Testframework?



 jUnit existiert seit über 10 Jahren und leistet
  seinen Dienst!

 Mithilfe von Mocking Frameworks (bspw.
  PowerMock & Mockito) lässt sich Testcode
  komplett isolieren (Abhängigkeiten können
  „gemockt“ werden).
Wo ist das Problem?
Benötigt es ein weiteres Testframework?



 Oberflächentests mit Selenium funktioniert!
  (Integrationstest)

 …

Alles Super
                                          ODER?
Wo ist das Problem?
Wo ist das Problem?

 @ApplicationPath("/rest")
 public class RESTServiceApplication extends Application {
 }

 public class Resources {
   @ConversationScoped
   @ExtensionManaged
   @Produces
   @PersistenceUnit
   EntityManagerFactory producerField;

     @Produces
     public Logger produceLog(InjectionPoint injectionPoint) {
       return Logger.getLogger(injectionPoint.getMember()
                    .getDeclaringClass().getName());
     }
 }
Was leistet




              ?
“Arquillian is a revolutionary testing platform built on the
JVM that substantially reduces the effort required to write
and execute Java middleware integration and functional
tests. No more mocks. No more container lifecycle and
deployment hassles. Just real tests!”
                                        [Quelle: http://jboss.org/arquillian.html]




“So you can rule your code. Not the bugs.“
                                                   [Quelle: http://arquillian.org]
Arquillian brings test execution to the target runtime so you don't have to
manage the runtime from the test (or project build). To invert this control,
Arquillian wraps a lifecycle around test execution that provides the following
services:

       Manages the lifecycle of one or more containers
       Bundles the test case, dependent classes and resources as
        ShrinkWrap archives
       Deploys the archives to the containers
       Enriches the test case with dependency injection and other
        declarative services
       Executes the tests inside (or against) the containers
       Returns the results to the test runner for reporting

Arquillian runs with Java 1.5 and above, integrates seamlessly with familiar
testing frameworks such as JUnit and TestNG and allows tests to be
launched using existing IDE, Ant and Maven test plugins.


                                                     [Quelle: http://jboss.org/arquillian.html]
Was leistet Arquillian?
                                                                    12




 Vernünftige Unit-Tests von gemanagten Klassen

 Irreführende Mocks können entfallen

 Möglichkeit Code mit verschiedenen Containern zu testen

 Durch MavenDependencyResolver einfache Möglichkeit
   „komplette“ Applikation zu testen / nicht nur Klasse
   (Integrationtests)


 Durch die Erweiterung Drone besteht die Möglichkeit
   webbasierte Tests zu erstellen (Graphene, Selenium, Webdriver)
Arquillian
Grundlagen/Theorie
Architektur
Live Demo

… jetzt geht los!
Links
                                         16




  http://arquillian.org/

  http://www.jboss.org/arquillian.html
Kontakt
                                                    18




          nobisCum
          Matthias Reining
          [Senior Solutions Architect, Prokurist]
          Sedanstraße 23
          97082 Würzburg, Germany


          [T]     +49 (0) 931 / 7 96 67 – 0
          [F]     +49 (0) 931 / 7 96 67 – 29
          [@]     matthias.reining @ nobiscum.de
          [URL]   www.nobiscum.de

Weitere ähnliche Inhalte

Ähnlich wie 2012-10-12 Testen mit Arquillian

Kontinuierliches (Nicht)-Funktionales Testen von Microservices auf K8s
Kontinuierliches (Nicht)-Funktionales Testen von Microservices auf K8sKontinuierliches (Nicht)-Funktionales Testen von Microservices auf K8s
Kontinuierliches (Nicht)-Funktionales Testen von Microservices auf K8sQAware GmbH
 
Softwarequalitätssicherung mit Continuous Integration Tools
Softwarequalitätssicherung mit Continuous Integration ToolsSoftwarequalitätssicherung mit Continuous Integration Tools
Softwarequalitätssicherung mit Continuous Integration ToolsGFU Cyrus AG
 
BASTA 2016 - Alternativen zu Visual-Studio-Testtools: Wann lohnt es sich auch...
BASTA 2016 - Alternativen zu Visual-Studio-Testtools: Wann lohnt es sich auch...BASTA 2016 - Alternativen zu Visual-Studio-Testtools: Wann lohnt es sich auch...
BASTA 2016 - Alternativen zu Visual-Studio-Testtools: Wann lohnt es sich auch...Marc Müller
 
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
 
Gradle - Beginner's Workshop (german)
Gradle - Beginner's Workshop (german)Gradle - Beginner's Workshop (german)
Gradle - Beginner's Workshop (german)Joachim Baumann
 
DWX 2017 - Alternativen zu Visual-Studio-Testtools: Wann lohnt es sich auch m...
DWX 2017 - Alternativen zu Visual-Studio-Testtools: Wann lohnt es sich auch m...DWX 2017 - Alternativen zu Visual-Studio-Testtools: Wann lohnt es sich auch m...
DWX 2017 - Alternativen zu Visual-Studio-Testtools: Wann lohnt es sich auch m...Marc Müller
 
Agile Oracle database modeling and development - APEX Connect 2020
Agile Oracle database modeling and development - APEX Connect 2020Agile Oracle database modeling and development - APEX Connect 2020
Agile Oracle database modeling and development - APEX Connect 2020Torsten Kleiber
 
Automated testing of JavaFX UI components
Automated testing of JavaFX UI componentsAutomated testing of JavaFX UI components
Automated testing of JavaFX UI componentsWolfgang Weigend
 
Von Maven zu Gradle in 45 Minuten
Von Maven zu Gradle in 45 MinutenVon Maven zu Gradle in 45 Minuten
Von Maven zu Gradle in 45 MinutenQAware GmbH
 
Best Practices für TDD in JavaScript
Best Practices für TDD in JavaScriptBest Practices für TDD in JavaScript
Best Practices für TDD in JavaScriptSebastian Springer
 
Lean development 04
Lean development 04Lean development 04
Lean development 04SuperB2
 
Java Aktuell Bernd Zuther Canary Releases mit der Very Awesome Microservices ...
Java Aktuell Bernd Zuther Canary Releases mit der Very Awesome Microservices ...Java Aktuell Bernd Zuther Canary Releases mit der Very Awesome Microservices ...
Java Aktuell Bernd Zuther Canary Releases mit der Very Awesome Microservices ...Bernd Zuther
 
DevOps der Triple-E Klasse - Eclipse DemoCamp
DevOps der Triple-E Klasse - Eclipse DemoCampDevOps der Triple-E Klasse - Eclipse DemoCamp
DevOps der Triple-E Klasse - Eclipse DemoCampWerner Keil
 
Kurzpräsentation JAMES II
Kurzpräsentation JAMES IIKurzpräsentation JAMES II
Kurzpräsentation JAMES IIRoland Ewald
 
Objektbasierte Versionierung und Lifecycle Management für den OWB
Objektbasierte Versionierung und Lifecycle Management für den OWBObjektbasierte Versionierung und Lifecycle Management für den OWB
Objektbasierte Versionierung und Lifecycle Management für den OWBMinerva SoftCare GmbH
 

Ähnlich wie 2012-10-12 Testen mit Arquillian (20)

Kontinuierliches (Nicht)-Funktionales Testen von Microservices auf K8s
Kontinuierliches (Nicht)-Funktionales Testen von Microservices auf K8sKontinuierliches (Nicht)-Funktionales Testen von Microservices auf K8s
Kontinuierliches (Nicht)-Funktionales Testen von Microservices auf K8s
 
Softwarequalitätssicherung mit Continuous Integration Tools
Softwarequalitätssicherung mit Continuous Integration ToolsSoftwarequalitätssicherung mit Continuous Integration Tools
Softwarequalitätssicherung mit Continuous Integration Tools
 
BASTA 2016 - Alternativen zu Visual-Studio-Testtools: Wann lohnt es sich auch...
BASTA 2016 - Alternativen zu Visual-Studio-Testtools: Wann lohnt es sich auch...BASTA 2016 - Alternativen zu Visual-Studio-Testtools: Wann lohnt es sich auch...
BASTA 2016 - Alternativen zu Visual-Studio-Testtools: Wann lohnt es sich auch...
 
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
 
Gradle - Beginner's Workshop (german)
Gradle - Beginner's Workshop (german)Gradle - Beginner's Workshop (german)
Gradle - Beginner's Workshop (german)
 
OC|Webcast "Java heute" vom 28.09.2021
OC|Webcast "Java heute" vom 28.09.2021OC|Webcast "Java heute" vom 28.09.2021
OC|Webcast "Java heute" vom 28.09.2021
 
OC|Webcast "Java heute" vom 24.08.2021
OC|Webcast "Java heute" vom 24.08.2021OC|Webcast "Java heute" vom 24.08.2021
OC|Webcast "Java heute" vom 24.08.2021
 
DWX 2017 - Alternativen zu Visual-Studio-Testtools: Wann lohnt es sich auch m...
DWX 2017 - Alternativen zu Visual-Studio-Testtools: Wann lohnt es sich auch m...DWX 2017 - Alternativen zu Visual-Studio-Testtools: Wann lohnt es sich auch m...
DWX 2017 - Alternativen zu Visual-Studio-Testtools: Wann lohnt es sich auch m...
 
Agile Oracle database modeling and development - APEX Connect 2020
Agile Oracle database modeling and development - APEX Connect 2020Agile Oracle database modeling and development - APEX Connect 2020
Agile Oracle database modeling and development - APEX Connect 2020
 
Iks Sonderdruck Eclipse Magazin Mai 2010: Automatisierte SWTBot-Tests
Iks Sonderdruck Eclipse Magazin Mai 2010: Automatisierte SWTBot-TestsIks Sonderdruck Eclipse Magazin Mai 2010: Automatisierte SWTBot-Tests
Iks Sonderdruck Eclipse Magazin Mai 2010: Automatisierte SWTBot-Tests
 
Automated testing of JavaFX UI components
Automated testing of JavaFX UI componentsAutomated testing of JavaFX UI components
Automated testing of JavaFX UI components
 
Von Maven zu Gradle in 45 Minuten
Von Maven zu Gradle in 45 MinutenVon Maven zu Gradle in 45 Minuten
Von Maven zu Gradle in 45 Minuten
 
Best Practices für TDD in JavaScript
Best Practices für TDD in JavaScriptBest Practices für TDD in JavaScript
Best Practices für TDD in JavaScript
 
Lean development 04
Lean development 04Lean development 04
Lean development 04
 
Java Aktuell Bernd Zuther Canary Releases mit der Very Awesome Microservices ...
Java Aktuell Bernd Zuther Canary Releases mit der Very Awesome Microservices ...Java Aktuell Bernd Zuther Canary Releases mit der Very Awesome Microservices ...
Java Aktuell Bernd Zuther Canary Releases mit der Very Awesome Microservices ...
 
Test-Automation mit Selenium WebDriver - ein Artikel der iks im dotnetpro
Test-Automation mit Selenium WebDriver - ein Artikel der iks im dotnetproTest-Automation mit Selenium WebDriver - ein Artikel der iks im dotnetpro
Test-Automation mit Selenium WebDriver - ein Artikel der iks im dotnetpro
 
DevOps der Triple-E Klasse - Eclipse DemoCamp
DevOps der Triple-E Klasse - Eclipse DemoCampDevOps der Triple-E Klasse - Eclipse DemoCamp
DevOps der Triple-E Klasse - Eclipse DemoCamp
 
Kurzpräsentation JAMES II
Kurzpräsentation JAMES IIKurzpräsentation JAMES II
Kurzpräsentation JAMES II
 
Objektbasierte Versionierung und Lifecycle Management für den OWB
Objektbasierte Versionierung und Lifecycle Management für den OWBObjektbasierte Versionierung und Lifecycle Management für den OWB
Objektbasierte Versionierung und Lifecycle Management für den OWB
 
Agiles Testen - Überblick
Agiles Testen - ÜberblickAgiles Testen - Überblick
Agiles Testen - Überblick
 

2012-10-12 Testen mit Arquillian

  • 1. [mit uns...] richtig testen Testen mit Arquillian Würzburg, den 12. Oktober 2012
  • 2. Beschreibung der Veranstaltung: Integrationstest mit Arquillian "Arquillian is a revolutionary testing platform for enterprise Java." Mit diesen Slogan wirbt Red Hat für Arquillian. Die Schulung soll aufzeigen was hinter Arquillian steckt. Im ersten Teil der Schulung werden die Grundlagen von Arquillian vorgestellt. Im Anschluss werden diese mit Beispielen vertieft. Zielgruppe: Entwickler / Tester
  • 3. Agenda 3 A Wo ist das Problem? B Was leistet Arquillian? C Grundlagen / Theorie D Coding
  • 4. Wo ist das Problem? Benötigt es ein weiteres Testframework?  jUnit existiert seit über 10 Jahren und leistet seinen Dienst!  Mithilfe von Mocking Frameworks (bspw. PowerMock & Mockito) lässt sich Testcode komplett isolieren (Abhängigkeiten können „gemockt“ werden).
  • 5. Wo ist das Problem? Benötigt es ein weiteres Testframework?  Oberflächentests mit Selenium funktioniert! (Integrationstest)  … Alles Super ODER?
  • 6. Wo ist das Problem?
  • 7. Wo ist das Problem? @ApplicationPath("/rest") public class RESTServiceApplication extends Application { } public class Resources { @ConversationScoped @ExtensionManaged @Produces @PersistenceUnit EntityManagerFactory producerField; @Produces public Logger produceLog(InjectionPoint injectionPoint) { return Logger.getLogger(injectionPoint.getMember() .getDeclaringClass().getName()); } }
  • 9.
  • 10. “Arquillian is a revolutionary testing platform built on the JVM that substantially reduces the effort required to write and execute Java middleware integration and functional tests. No more mocks. No more container lifecycle and deployment hassles. Just real tests!” [Quelle: http://jboss.org/arquillian.html] “So you can rule your code. Not the bugs.“ [Quelle: http://arquillian.org]
  • 11. Arquillian brings test execution to the target runtime so you don't have to manage the runtime from the test (or project build). To invert this control, Arquillian wraps a lifecycle around test execution that provides the following services:  Manages the lifecycle of one or more containers  Bundles the test case, dependent classes and resources as ShrinkWrap archives  Deploys the archives to the containers  Enriches the test case with dependency injection and other declarative services  Executes the tests inside (or against) the containers  Returns the results to the test runner for reporting Arquillian runs with Java 1.5 and above, integrates seamlessly with familiar testing frameworks such as JUnit and TestNG and allows tests to be launched using existing IDE, Ant and Maven test plugins. [Quelle: http://jboss.org/arquillian.html]
  • 12. Was leistet Arquillian? 12  Vernünftige Unit-Tests von gemanagten Klassen  Irreführende Mocks können entfallen  Möglichkeit Code mit verschiedenen Containern zu testen  Durch MavenDependencyResolver einfache Möglichkeit „komplette“ Applikation zu testen / nicht nur Klasse (Integrationtests)  Durch die Erweiterung Drone besteht die Möglichkeit webbasierte Tests zu erstellen (Graphene, Selenium, Webdriver)
  • 15. Live Demo … jetzt geht los!
  • 16. Links 16 http://arquillian.org/ http://www.jboss.org/arquillian.html
  • 17.
  • 18. Kontakt 18 nobisCum Matthias Reining [Senior Solutions Architect, Prokurist] Sedanstraße 23 97082 Würzburg, Germany [T] +49 (0) 931 / 7 96 67 – 0 [F] +49 (0) 931 / 7 96 67 – 29 [@] matthias.reining @ nobiscum.de [URL] www.nobiscum.de