18
[mit uns...] Testen mit Arquillian Würzburg, den 12. Oktober 2012 richtig testen

2012-10-12 Testen mit Arquillian

Embed Size (px)

Citation preview

Page 1: 2012-10-12 Testen mit Arquillian

[mit uns...]

Testen mit ArquillianWürzburg, den 12. Oktober 2012

richtig testen

Page 2: 2012-10-12 Testen mit Arquillian

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

Page 3: 2012-10-12 Testen mit Arquillian

3

Agenda

A Wo ist das Problem?

B Was leistet Arquillian?

C Grundlagen / Theorie

D Coding

Page 4: 2012-10-12 Testen mit Arquillian

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).

Page 5: 2012-10-12 Testen mit Arquillian

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

Oberflächentests mit Selenium funktioniert! (Integrationstest)

Alles SuperODER?

Page 6: 2012-10-12 Testen mit Arquillian

Wo ist das Problem?

Page 7: 2012-10-12 Testen mit Arquillian

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()); }}

Page 8: 2012-10-12 Testen mit Arquillian

Was leistet

?

Page 9: 2012-10-12 Testen mit Arquillian
Page 10: 2012-10-12 Testen mit Arquillian

“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]

Page 11: 2012-10-12 Testen mit Arquillian

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]

Page 12: 2012-10-12 Testen mit Arquillian

12

Was leistet Arquillian?

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)

Page 13: 2012-10-12 Testen mit Arquillian

Arquillian Grundlagen/Theorie

Page 14: 2012-10-12 Testen mit Arquillian

Architektur

Page 15: 2012-10-12 Testen mit Arquillian

Live Demo

… jetzt geht los!

Page 16: 2012-10-12 Testen mit Arquillian

16

Links

http://arquillian.org/

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

Page 17: 2012-10-12 Testen mit Arquillian
Page 18: 2012-10-12 Testen mit Arquillian

18

Kontakt

nobisCumMatthias Reining[Senior Solutions Architect, Prokurist]Sedanstraße 2397082 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