AngularJS: Testing und Best Practices
5/5
()
Über dieses E-Book
Mehr von Sebastian Springer lesen
Testgetriebene Entwicklung mit JavaScript: Das Handbuch für den professionellen Programmierer Bewertung: 0 von 5 Sternen0 Bewertungen
Ähnlich wie AngularJS
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
jQuery Mobile: Unit Testing Bewertung: 0 von 5 Sternen0 BewertungenAutomatisiertes Testen: Testautomatisierung mit Geb und ScalaTest Bewertung: 0 von 5 Sternen0 BewertungenDependency Injection in Java: Testing mit CDI-Unit und DI-Frameworks Bewertung: 0 von 5 Sternen0 BewertungenSpring Boot und Spring Cloud Bewertung: 5 von 5 Sternen5/5Java EE Testing mit Arquillian Bewertung: 0 von 5 Sternen0 BewertungenKompakteinstieg: Continuous Integration mit Jenkins Bewertung: 0 von 5 Sternen0 BewertungenTestwissen für Java-Entwickler Bewertung: 0 von 5 Sternen0 BewertungenWeb Services mit Apache CXF: Schnell und einfach erklärt Bewertung: 0 von 5 Sternen0 BewertungenModerne Webanwendungen mit AngularJS Bewertung: 0 von 5 Sternen0 BewertungenExpertentipps zu Angular: Neuerungen in Angular 6, Umgang mit Microservices, Performanz und UX-Design Bewertung: 0 von 5 Sternen0 BewertungenProgressive Web-Apps: Offlinefähige Web-Anwendungen mit nativen Qualitäten Bewertung: 0 von 5 Sternen0 BewertungenProjektmanagement mit Scrum: Tools zur Entwicklung von Software Bewertung: 0 von 5 Sternen0 BewertungenTroubleshooting und Monitoring von Exchange und Office 365 Bewertung: 0 von 5 Sternen0 BewertungenJavaFX Rendering & 3D Bewertung: 0 von 5 Sternen0 BewertungenVaadin mit Eclipse, Clojure und OSGi Bewertung: 0 von 5 Sternen0 BewertungenCDI - Dependency Injection in Java EE 7: Dependency Injection in Java EE 7 Bewertung: 0 von 5 Sternen0 BewertungenApache Tamaya: Einstieg in die Konfiguration in Java Bewertung: 0 von 5 Sternen0 BewertungenSoftwarequalität in PHP-Prozessen: Installation und Betrieb eines Jenkins-Servers Bewertung: 0 von 5 Sternen0 BewertungenJavaScript auf dem Server Bewertung: 0 von 5 Sternen0 BewertungenAngular: Das Praxisbuch zu Grundlagen und Best Practices Bewertung: 0 von 5 Sternen0 BewertungenWebentwicklung mit dem Play Framework Bewertung: 0 von 5 Sternen0 BewertungenSpock, Geb und Selenium: Testframeworks unter die Lupe genommen Bewertung: 0 von 5 Sternen0 BewertungenApps mit Azure Bewertung: 0 von 5 Sternen0 BewertungenVaadin Schnelleinstieg Bewertung: 0 von 5 Sternen0 BewertungenDie Serverwelt von Node.js Bewertung: 0 von 5 Sternen0 BewertungenASP.NET Core: Eine Einführung 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 BewertungenErfahrungen mit Eclipse 4: aus der Praxis für die Praxis Bewertung: 0 von 5 Sternen0 BewertungenPerformante Webanwendungen: Client- und serverseitige Techniken zur Performance-Optimierung Bewertung: 0 von 5 Sternen0 BewertungenAufsetzen, Testen und Betrieb einer Android-App Bewertung: 0 von 5 Sternen0 Bewertungen
Programmieren für Sie
.NET-Praxis: Tipps und Tricks zu .NET und Visual Studio Bewertung: 0 von 5 Sternen0 BewertungenLinux Grundlagen - Ein Einstieg in das Linux-Betriebssystem Bewertung: 0 von 5 Sternen0 BewertungenAlgorithmen: Grundlagen und Implementierung Bewertung: 0 von 5 Sternen0 BewertungenJavaScript kurz & gut Bewertung: 3 von 5 Sternen3/5Programmieren lernen mit Python 3: Schnelleinstieg für Beginner Bewertung: 0 von 5 Sternen0 BewertungenWeniger schlecht programmieren Bewertung: 4 von 5 Sternen4/5Linux Befehlsreferenz: Schnelleinstieg in die Arbeit mit der Konsole, regulären Ausdrücken und Shellscripting Bewertung: 0 von 5 Sternen0 BewertungenMikrocontroller in der Elektronik: Mikrocontroller programmieren und in der Praxis einsetzen Bewertung: 0 von 5 Sternen0 BewertungenPython kurz & gut: Für Python 3.x und 2.7 Bewertung: 3 von 5 Sternen3/5Git kurz & gut Bewertung: 0 von 5 Sternen0 BewertungenSQL von Kopf bis Fuß Bewertung: 4 von 5 Sternen4/5Programmieren von Kopf bis Fuß Bewertung: 4 von 5 Sternen4/5C von Kopf bis Fuß Bewertung: 3 von 5 Sternen3/5Raspberry Pi: Mach's einfach: Die kompakteste Gebrauchsanweisung mit 222 Anleitungen. Geeignet für Raspberry Pi 3 Modell B / B+ Bewertung: 0 von 5 Sternen0 BewertungenHacken mit Python und Kali-Linux: Entwicklung eigener Hackingtools mit Python unter Kali-Linux Bewertung: 0 von 5 Sternen0 BewertungenDie ultimative FRITZ!Box Bibel - Das Praxisbuch 2. aktualisierte Auflage - mit vielen Insider Tipps und Tricks - komplett in Farbe Bewertung: 0 von 5 Sternen0 BewertungenDas Excel SOS-Handbuch: Wie sie Excel (2010-2019 & 365) schnell & einfach meistern. Die All-in-One Anleitung für ihren privaten & beruflichen Excel-Erfolg! Bewertung: 0 von 5 Sternen0 BewertungenDas große Python3 Workbook: Mit vielen Beispielen und Übungen - Programmieren leicht gemacht! Bewertung: 4 von 5 Sternen4/5Eigene Spiele programmieren – Python lernen: Der spielerische Weg zur Programmiersprache Bewertung: 0 von 5 Sternen0 BewertungenAndroid-Programmierung kurz & gut Bewertung: 0 von 5 Sternen0 BewertungenNew Game Plus: Perspektiven der Game Studies. Genres - Künste - Diskurse (Bild und Bit. Studien zur digitalen Medienkultur) Bewertung: 0 von 5 Sternen0 BewertungenSoftwareentwicklungsprozess: Von der ersten Idee bis zur Installation 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 BewertungenRaspberry Pi: Einstieg • Optimierung • Projekte Bewertung: 5 von 5 Sternen5/5Perspektiven für Informatiker 2019: Branchenüberblick, Erfahrungsberichte und Tipps zum Berufseinstieg Bewertung: 0 von 5 Sternen0 BewertungenHTML5-Programmierung von Kopf bis Fuß: Webanwendungen mit HTML5 und JavaScript Bewertung: 0 von 5 Sternen0 BewertungenMicrocontroller für das IoT Bewertung: 0 von 5 Sternen0 BewertungenProgrammieren für Einsteiger: Teil 1 Bewertung: 0 von 5 Sternen0 BewertungenPython lernen – kurz & gut Bewertung: 0 von 5 Sternen0 BewertungenDas Franzis Starterpaket Arduino Uno: Das Handbuch für den Schnelleinstieg Bewertung: 0 von 5 Sternen0 Bewertungen
Rezensionen für AngularJS
1 Bewertung0 Rezensionen
Buchvorschau
AngularJS - Sebastian Springer
GmbH
1 Setup und Testen von AngularJS-Applikationen
AngularJS wurde mit einem Fokus auf Testbarkeit entwickelt. Das bedeutet nicht nur, dass Ihnen das Framework bei der Erstellung von Tests nicht im Weg steht, sondern Sie sogar bei der Formulierung von Tests unterstützt. In der Realität sieht es allerdings eher traurig aus, wenn es um gut getestete AngularJS-Applikationen oder gar testgetriebene Entwicklung mit AngularJS geht. Deswegen wollen wir das Dickicht des Testdschungels etwas lichten.
Dieses Kapitel soll etwas Licht ins Dunkel bringen und Sie motivieren, Tests für Ihre Applikation zu schreiben. Das bedeutet eigentlich gar nicht so viel Aufwand und gibt Ihnen Sicherheit und eine gute Ausgangslage für eine Erweiterung oder Veränderung Ihrer Applikation.
Wo liegt das Problem?
Anfänglich ist es sehr einfach, mit AngularJS vorzeigbare Ergebnisse zu liefern. Sie generieren die HTML-Struktur der Seite, erstellen ein Modul für die Applikation und schreiben den ersten Controller. Dann noch schnell die Daten per $http, ngResource oder Restangular vom Server geholt und per ng-repeat dargestellt. Ein Formular zum Anlegen und Bearbeiten der Daten und schon steht der erste Prototyp. Dann kommen noch ein paar Erweiterungen hinzu, hier noch eine Idee ausprobiert, ein neuer Service eingefügt, der einen Teil der Businesslogik enthält, und schon haben Sie eine nette kleine Applikation. In der ganzen Euphorie ist eins allerdings auf der Strecke geblieben: die Tests. Das Fehlen von Tests hat meist gute Gründe – zum Beispiel bedeutet das Schreiben von Tests Aufwand. Schreiben Sie also einen oder mehrere Tests oder lassen Sie die Energie lieber in das noch nicht so komplexe Feature laufen? Außerdem testen Sie gerade zu Beginn der Entwicklung keine Systemkomponenten wie $http oder ng-repeat.
Das mag stimmen, allerdings müssen Sie rechtzeitig den Absprung schaffen und damit beginnen, Tests zu schreiben, denn je länger Sie damit warten, desto aufwändiger wird es, sie in die Applikation zu integrieren. Irgendwann verlassen Sie den von AngularJS vorgegebenen Pfad und müssen eigene Logik implementieren. Spätestens, wenn Sie mit der Erstellung von Services beginnen oder komplexere Routinen in Ihren Controller einbauen, benötigen Sie Tests. Sobald Sie anfangen, zwischen verschiedenen Komponenten zu kommunizieren, wird die Situation noch unübersichtlicher, denn eine Änderung in einem Controller oder Service kaskadiert durch die halbe Applikation und ruft dabei unvorhergesehenes Verhalten hervor. Dabei steigt das Risiko, dass sich Fehler in Ihre Applikation einschleichen, stetig. Wann ist also der richtige Zeitpunkt, und wie beginnt man am besten mit dem Testen?
Wie unterstützt AngularJS die Erstellung von Tests?
Schon bei der initialen Entwicklung haben die Entwickler von AngularJS viel Wert auf Testbarkeit gelegt. Das macht sich am deutlichsten bemerkbar, wenn Sie einen Blick auf die Struktur des Frameworks und die Art und Weise, wie eine Applikation gebaut wird, werfen.
Der Schlüssel zur Testbarkeit von AngularJS liegt in der losen Kopplung der einzelnen Komponenten. Sie bauen eine Applikation nicht in einem großen Block und auch nicht in einem etwas kleineren Block pro Feature, sondern strukturieren die Applikation in kleine Einheiten, die über definierte Schnittstellen miteinander kommunizieren. Diese Struktur ermöglicht den Umgang mit Abhängigkeiten, sodass Sie immer nur eine Einheit testen können und sich keine Gedanken über den Rest Ihrer Applikation machen müssen. Als Hilfestellung bietet Ihnen AngularJS einen Dependency-Injection-Mechanismus, bei dem Sie lediglich angeben müssen, welche Komponenten Sie benötigen. AngularJS stellt Ihnen diese dann zur Verfügung. Jede Abhängigkeit kann in einem Test durch ein Test-Double ersetzt werden, bei dem Sie bestimmen können, wie es sich im Testszenario verhalten soll. Funktionieren sämtliche Einheiten Ihrer Applikation für sich genommen, bildet dies eine solide Basis