Dependency Injection in Java: Testing mit CDI-Unit und DI-Frameworks
()
Über dieses E-Book
Ähnlich wie Dependency Injection in Java
Titel in dieser Serie (100)
TFS 2012 Versionskontrolle: Grundlagen, Check-In Policies und Branch-Modelle Bewertung: 0 von 5 Sternen0 BewertungenErfolgreiche Spieleentwicklung: OpenCL Bewertung: 0 von 5 Sternen0 BewertungenAlgorithmen: Grundlagen und Implementierung Bewertung: 0 von 5 Sternen0 BewertungenEinstieg in Google Go Bewertung: 0 von 5 Sternen0 BewertungenSkalierbare Softwaresysteme: Design, Betrieb und Optimierungspotenziale Bewertung: 0 von 5 Sternen0 BewertungenIT Wissensmanagement: Theorie und Praxis Bewertung: 0 von 5 Sternen0 BewertungenZend Framework 2: Für Einsteiger und Umsteiger Bewertung: 0 von 5 Sternen0 BewertungenApache Tapestry: Einstieg in die komponentenorientierte Webentwicklung Bewertung: 0 von 5 Sternen0 BewertungenJavaScript für Eclipse-Entwickler: Orion, RAP und GWT Bewertung: 0 von 5 Sternen0 BewertungenJava EE Security Bewertung: 0 von 5 Sternen0 BewertungenAmazon Web Services für .NET Entwickler Bewertung: 0 von 5 Sternen0 BewertungenErfolgreiche Spieleentwicklung: OpenGL, OpenAL und KI Bewertung: 0 von 5 Sternen0 BewertungenJavaScript auf dem Server Bewertung: 0 von 5 Sternen0 BewertungenHTML5 Security Bewertung: 0 von 5 Sternen0 BewertungenJava 7: Fork-Join-Framework und Phaser Bewertung: 0 von 5 Sternen0 BewertungenTFS 2012 Anforderungsmanagement: Work Items und Prozessvorlagen Bewertung: 0 von 5 Sternen0 BewertungenADF - Mobile Apps entwickeln und Swing ablösen: Mobile Apps entwickeln und Swing ablösen Bewertung: 0 von 5 Sternen0 BewertungenGeolocation mit PHP: Foursquare-API, Google Places & Qype Bewertung: 0 von 5 Sternen0 BewertungenNFC: Near Field Communication für Android-Entwickler Bewertung: 5 von 5 Sternen5/5UX Design für Tablet-Websites: Ein Überblick Bewertung: 0 von 5 Sternen0 BewertungenHTML5 für Mobile Web Bewertung: 0 von 5 Sternen0 BewertungenC++: Kurzportträt einer zeitlosen Sprache Bewertung: 0 von 5 Sternen0 BewertungenÜberzeugende Präsentationen: Konzeption, Technik und Design Bewertung: 0 von 5 Sternen0 BewertungenMobile Business: Was Entscheider morgen wissen müssen Bewertung: 0 von 5 Sternen0 BewertungenEclipse meets Java FX Bewertung: 0 von 5 Sternen0 BewertungenQualität in IT-Architekturen: Strategie und Planung Bewertung: 0 von 5 Sternen0 BewertungenServiceorientierte Architektur: Anforderungen, Konzeption und Praxiserfahrungen Bewertung: 0 von 5 Sternen0 BewertungenQualitätssicherung mit JavaScript und PHP Bewertung: 0 von 5 Sternen0 BewertungenF#: Ein praktischer Einstieg Bewertung: 0 von 5 Sternen0 BewertungenBig Data: Executive Briefing Bewertung: 0 von 5 Sternen0 Bewertungen
Ähnliche E-Books
Testwissen für Java-Entwickler Bewertung: 0 von 5 Sternen0 BewertungenjQuery Mobile: Unit Testing Bewertung: 0 von 5 Sternen0 BewertungenAutomatisiertes Testen: Testautomatisierung mit Geb und ScalaTest Bewertung: 0 von 5 Sternen0 BewertungenJava EE Testing mit Arquillian Bewertung: 0 von 5 Sternen0 BewertungenCDI - Dependency Injection in Java EE 7: Dependency Injection in Java EE 7 Bewertung: 0 von 5 Sternen0 BewertungenSoftwarestabilität in der Industrie Bewertung: 0 von 5 Sternen0 BewertungenAngularJS: Testing und Best Practices Bewertung: 5 von 5 Sternen5/5Softwareentwicklungsprozess: Von der ersten Idee bis zur Installation Bewertung: 0 von 5 Sternen0 BewertungenApache Tamaya: Einstieg in die Konfiguration in Java Bewertung: 0 von 5 Sternen0 BewertungenAufsetzen, Testen und Betrieb einer Android-App Bewertung: 0 von 5 Sternen0 BewertungenArchitekturpatterns mit Python: Test-Driven Development, Domain-Driven Design und Event-Driven Microservices praktisch umgesetzt Bewertung: 0 von 5 Sternen0 BewertungenJavaFX Rendering & 3D Bewertung: 0 von 5 Sternen0 BewertungenApplication Insights Bewertung: 0 von 5 Sternen0 BewertungenTesten von Data-Warehouse- und Business-Intelligence-Systemen: Vorgehen, Methoden und Konzepte Bewertung: 0 von 5 Sternen0 BewertungenZukunftssichere Architektur: So bauen Sie monolithische Anwendungen zu komponentenorientierten um Bewertung: 0 von 5 Sternen0 BewertungenJava EE 6: Enterprise-Anwendungsentwicklung leicht gemacht Bewertung: 0 von 5 Sternen0 BewertungenTesting mit Visual Studio 2012: Testing mit Visual Studio 2012 Bewertung: 0 von 5 Sternen0 BewertungenLean Testing für C++-Programmierer: Angemessen statt aufwendig testen Bewertung: 0 von 5 Sternen0 BewertungenKompakteinstieg: Continuous Integration mit Jenkins Bewertung: 0 von 5 Sternen0 BewertungenJava 9 – Die Neuerungen: Syntax- und API-Erweiterungen und Modularisierung im Überblick Bewertung: 0 von 5 Sternen0 BewertungenSpock, Geb und Selenium: Testframeworks unter die Lupe genommen Bewertung: 0 von 5 Sternen0 BewertungenContinuous Delivery: Der pragmatische Einstieg Bewertung: 0 von 5 Sternen0 BewertungenErfahrungen mit Eclipse 4: aus der Praxis für die Praxis Bewertung: 0 von 5 Sternen0 BewertungenAgile Softwareentwicklung mit C# (Microsoft Press): Best Practices und Patterns für flexiblen und adaptiven C#-Code Bewertung: 0 von 5 Sternen0 BewertungenJava – die Neuerungen in Version 9 bis 12: Modularisierung, Syntax- und API-Erweiterungen Bewertung: 0 von 5 Sternen0 BewertungenTestgetriebene Entwicklung mit JavaScript: Das Handbuch für den professionellen Programmierer Bewertung: 0 von 5 Sternen0 BewertungenLogging: Schnelleinstieg Bewertung: 0 von 5 Sternen0 BewertungenQualitätssicherung mit JavaScript und PHP Bewertung: 0 von 5 Sternen0 BewertungenVon Monolithen und Microservices: Funktionierende Microservices-Architekturen erstellen Bewertung: 0 von 5 Sternen0 BewertungenJava EE Security Bewertung: 0 von 5 Sternen0 Bewertungen
Programmieren für Sie
SQL – kurz & gut Bewertung: 0 von 5 Sternen0 BewertungenProgrammieren lernen mit Python 3: Schnelleinstieg für Beginner Bewertung: 0 von 5 Sternen0 BewertungenAlgorithmen: Grundlagen und Implementierung Bewertung: 0 von 5 Sternen0 BewertungenJavaScript kurz & gut Bewertung: 3 von 5 Sternen3/5Programmieren für Einsteiger: Teil 1 Bewertung: 0 von 5 Sternen0 BewertungenWeniger schlecht programmieren Bewertung: 4 von 5 Sternen4/5Git kurz & gut Bewertung: 0 von 5 Sternen0 BewertungenPython | Schritt für Schritt Programmieren lernen: Der ultimative Anfänger Guide für einen einfachen & schnellen Einstieg Bewertung: 0 von 5 Sternen0 BewertungenPython kurz & gut: Für Python 3.x und 2.7 Bewertung: 3 von 5 Sternen3/5Das große Python3 Workbook: Mit vielen Beispielen und Übungen - Programmieren leicht gemacht! Bewertung: 4 von 5 Sternen4/5Linux Grundlagen - Ein Einstieg in das Linux-Betriebssystem Bewertung: 0 von 5 Sternen0 BewertungenPython-Grundlagen Bewertung: 0 von 5 Sternen0 BewertungenRaspberry Pi: Mach's einfach: Die kompakteste Gebrauchsanweisung mit 222 Anleitungen. Geeignet für Raspberry Pi 3 Modell B / B+ Bewertung: 0 von 5 Sternen0 BewertungenEigene Spiele programmieren – Python lernen: Der spielerische Weg zur Programmiersprache Bewertung: 0 von 5 Sternen0 BewertungenC++: Eine kompakte Einführung Bewertung: 0 von 5 Sternen0 BewertungenLinux Befehlsreferenz: Schnelleinstieg in die Arbeit mit der Konsole, regulären Ausdrücken und Shellscripting Bewertung: 0 von 5 Sternen0 BewertungenTraumjob IT 2021: Branchenüberblick, Erfahrungsberichte und Tipps zum Berufseinstieg Bewertung: 5 von 5 Sternen5/5SQL von Kopf bis Fuß Bewertung: 4 von 5 Sternen4/5JavaScript kinderleicht!: Einfach programmieren lernen mit der Sprache des Web Bewertung: 0 von 5 Sternen0 BewertungenProgrammieren von Kopf bis Fuß Bewertung: 4 von 5 Sternen4/5Mikrocontroller in der Elektronik: Mikrocontroller programmieren und in der Praxis einsetzen Bewertung: 0 von 5 Sternen0 BewertungenSoftwareentwicklungsprozess: Von der ersten Idee bis zur Installation Bewertung: 0 von 5 Sternen0 BewertungenRaspberry Pi: Einstieg • Optimierung • Projekte Bewertung: 5 von 5 Sternen5/5Die nicht zu kurze Kurzeinführung in MATLAB: Erste Schritte in MATLAB Bewertung: 0 von 5 Sternen0 BewertungenC++: Kurzportträt einer zeitlosen Sprache Bewertung: 0 von 5 Sternen0 BewertungenHacken mit Python und Kali-Linux: Entwicklung eigener Hackingtools mit Python unter Kali-Linux Bewertung: 0 von 5 Sternen0 BewertungenC von Kopf bis Fuß Bewertung: 3 von 5 Sternen3/5Python programmieren lernen: Der spielerische Einstieg mit Minecraft Bewertung: 0 von 5 Sternen0 BewertungenMicrocontroller für das IoT Bewertung: 0 von 5 Sternen0 BewertungenEinstieg in TypeScript: Grundlagen für Entwickler Bewertung: 0 von 5 Sternen0 Bewertungen
Rezensionen für Dependency Injection in Java
0 Bewertungen0 Rezensionen
Buchvorschau
Dependency Injection in Java - Christian Laboranowitsch
GmbH
1 Integrationstests von CDI-Komponenten
Bei der Entwicklung von Java-EE-Anwendungen vermisst der Spring-verwöhnte Entwickler ein integriertes Testframeworks schmerzlich. Denn während mit Spring das Spring-Test-Modul mitgeliefert wird, ist man bei Java-EE-Applikationen auf Third Party Libraries und einen gewissen Erfindergeist der Entwickler und Architekten im Projekt angewiesen. Neben den allseits bekannten Größen wie Arquillian [1] steht mit CDI-Unit [2] ein vielversprechendes Framework in den Startlöchern, wenn es um das Testen von komplexen Java-EE-6-/CDI-Applikationen geht. Im Folgenden werden wir die Vor- und Nachteile der einzelnen Ansätze darstellen und exemplarische Anwendungsfälle aufzeigen.
Ein wichtiger Erfolgsfaktor für Softwareentwicklungsprojekte ist das frühzeitige Testen durch die Entwickler. Aber wie kann man eine zufriedenstellende Testabdeckung mit angemessenem Aufwand erreichen? Dafür müssen die gewählten Frameworks und Werkzeuge die Erstellung und Ausführung von Tests bestmöglich unterstützen und gleichzeitig zum gewählten Technologiestack passen. Werkzeuge, die Hand in Hand greifen, vereinfachen die Erstellung und Ausführung der Tests und steigern nicht zuletzt die Motivation des Entwicklers, was ein nicht zu unterschätzender Aspekt ist.
Doch Testen ist in vielen Projekten leider immer noch eine Aufgabe mit C-Priorität. Es wird erledigt, wenn es die Zeitplanung oder die Budgetsituation zulässt. Häufig bleibt es auch noch heute auf der Strecke (eine Auswirkung ist beispielsweise, dass fehlgeschlagene Tests mit @Ignore annotiert werden, um sie dann „später" mal in Ordnung zu bringen). Ein Grund dafür mag sein, dass die Bedeutung von Entwicklertests für Nichtentwickler oft schwer zu greifen ist. Denn immerhin gibt es in nahezu allen Projekten Testphasen, in denen von Testern getestet wird. Dabei ist schon lange bekannt, dass ein Bug umso weniger Kosten verursacht, je früher er gefunden wird [3]. Man kann also argumentieren, dass Entwicklertests einen Return-on-Investment bieten, der umso höher ist, je früher die notwendigen Tests zur Anwendung kommen. Wenn also Entwicklertests nur nebenbei und irgendwann gemacht werden, leidet die Qualität der Software. Dies führt häufig zu Budgetbelastungen und Zeitdruck, gerade in der Endphase eines Projekts. Nicht zu vernachlässigen sind die hohen Belastungen der einzelnen Projektmitglieder, wenn es in der Auslieferungsphase zu Qualitätsproblemen mit langen Buglisten kommt. Auch wenn dies eine bereits bekannte Argumentationskette darstellt, gilt es immer noch bei dem einen oder anderen Stakeholder Überzeugungsarbeit zu leisten. Daneben bieten Entwicklertests noch eine Reihe anderer Vorteile:
Fehler, die durch spätere Refactorings entstehen, werden entdeckt. Ohne Entwicklertests ist es meist schwer zu sagen, ob das Refactoring erfolgreich durchgeführt werden konnte, wenn nicht sogar unmöglich (Regressionstests).
Spätere Änderungswünsche können ungewollte Auswirkungen auf Bereiche des Systems haben, die so nicht absehbar waren und nur durch das Fehlschlagen der Entwicklertests frühzeitig identifiziert werden.
Das Schreiben von Entwicklertests bewirkt häufig eine intensivere Auseinandersetzung mit den fachlichen Anforderungen und der technischen Umsetzung.
Entwicklertests dokumentieren das gewollte und ungewollte Verhalten von Code. So ist es häufig eine gute Idee, zur Einarbeitung in unbekannten Code bei den Tests zu starten.
Welche Art von Test darf es sein?
In der Softwareentwicklung gibt es für den richtigen Einsatzzweck unterschiedliche Arten von Tests (Abb. 1.1). Bei unserer Betrachtung wollen wir uns auf Entwicklertests beschränken.
Abbildung 1.1: Testpyramide
Unter Entwicklertests verstehen wir Unit und Integrationstests. Da diese beiden Begriffe nicht immer eindeutig verwendet werden, möchten wir kurz auf diese Testarten eingehen und die Unterschiede und Einsatzzwecke