AngularJS: Testing und Best Practices
5/5
()
About this ebook
Related to AngularJS
Titles in the series (100)
BPM: Strategien und Anwendungsfälle Rating: 0 out of 5 stars0 ratingsErfolgreiche Spieleentwicklung: OpenGL, OpenAL und KI Rating: 0 out of 5 stars0 ratingsHTML5 für Mobile Web Rating: 0 out of 5 stars0 ratingsHTML5 Security Rating: 0 out of 5 stars0 ratingsZend Framework 2: Für Einsteiger und Umsteiger Rating: 0 out of 5 stars0 ratingsVaadin Schnelleinstieg Rating: 0 out of 5 stars0 ratingsIT Wissensmanagement: Theorie und Praxis Rating: 0 out of 5 stars0 ratingsQualität in IT-Architekturen: Management Rating: 0 out of 5 stars0 ratingsEinstieg in Google Go Rating: 0 out of 5 stars0 ratingsErfolgreiche Spieleentwicklung: OpenCL Rating: 0 out of 5 stars0 ratingsBig Data: Technologiegrundlagen Rating: 0 out of 5 stars0 ratingsServiceorientierte Architektur: Anforderungen, Konzeption und Praxiserfahrungen Rating: 0 out of 5 stars0 ratingsJava 7: Fork-Join-Framework und Phaser Rating: 0 out of 5 stars0 ratingsNFC: Near Field Communication für Android-Entwickler Rating: 5 out of 5 stars5/5Java FX - Status Quo: Status Quo Rating: 0 out of 5 stars0 ratingsSkalierbare Softwaresysteme: Design, Betrieb und Optimierungspotenziale Rating: 0 out of 5 stars0 ratingsAmazon Web Services für .NET Entwickler Rating: 0 out of 5 stars0 ratingsJavaScript für Eclipse-Entwickler: Orion, RAP und GWT Rating: 0 out of 5 stars0 ratingsAlgorithmen: Grundlagen und Implementierung Rating: 0 out of 5 stars0 ratingsJavaScript auf dem Server Rating: 0 out of 5 stars0 ratingsÜberzeugende Präsentationen: Konzeption, Technik und Design Rating: 0 out of 5 stars0 ratingsTFS 2012 Anforderungsmanagement: Work Items und Prozessvorlagen Rating: 0 out of 5 stars0 ratingsC++: Kurzportträt einer zeitlosen Sprache Rating: 0 out of 5 stars0 ratingsQualitätssicherung mit JavaScript und PHP Rating: 0 out of 5 stars0 ratingsJava EE Security Rating: 0 out of 5 stars0 ratingsGeolocation mit PHP: Foursquare-API, Google Places & Qype Rating: 0 out of 5 stars0 ratingsADF - Mobile Apps entwickeln und Swing ablösen: Mobile Apps entwickeln und Swing ablösen Rating: 0 out of 5 stars0 ratingsEclipse meets Java FX Rating: 0 out of 5 stars0 ratingsQualität in IT-Architekturen: Strategie und Planung Rating: 0 out of 5 stars0 ratingsUX Design für Tablet-Websites: Ein Überblick Rating: 0 out of 5 stars0 ratings
Related ebooks
Windows PowerShell: Grundlagen und Scripting-Praxis für den Einstieg Rating: 0 out of 5 stars0 ratingsSpring Boot und Spring Cloud Rating: 5 out of 5 stars5/5FreeCAD | Konstruktionsprojekte: Fortgeschrittene CAD-Modelle Schritt für Schritt konstruieren Rating: 0 out of 5 stars0 ratingsTaschen-Guide zur Professional Scrum Master–Zertifizierung: PSM 1 Rating: 0 out of 5 stars0 ratingsJavaScript kurz & gut Rating: 3 out of 5 stars3/5Angular: Das große Praxisbuch – Grundlagen, fortgeschrittene Themen und Best Practices Rating: 0 out of 5 stars0 ratingsBug Bounty Hunting mit Kali-Linux oder Parrot Security OS: Hacking als Hautberuf oder Nebenjob Rating: 3 out of 5 stars3/5Nebenläufigkeit in Java und C++ Rating: 0 out of 5 stars0 ratingsSimulation technischer Prozesse mit LabVIEW: Kompendium Simulation und Regelung technischer Prozesse, Teil 6 Rating: 0 out of 5 stars0 ratingsSingle-Page-Web-Apps: JavaScript im Einsatz: Webseiten erstellen mit AngularJS, Meteor und jQuery Mobile Rating: 0 out of 5 stars0 ratingsZukunftssichere Architektur: So bauen Sie monolithische Anwendungen zu komponentenorientierten um Rating: 0 out of 5 stars0 ratingsCloud Computing Rating: 0 out of 5 stars0 ratingsSoftwarearchitektur für Dummies Rating: 0 out of 5 stars0 ratingsPHP für WordPress: Themes und Templates selbst entwickeln Rating: 0 out of 5 stars0 ratingsProjektmanagement mit Scrum: Tools zur Entwicklung von Software Rating: 0 out of 5 stars0 ratingsWebanwendungen erstellen mit Vue.js: MVVM-Muster für konventionelle und Single-Page-Webseiten Rating: 0 out of 5 stars0 ratingsEinführung in JavaFX: Moderne GUIs für RIAs und Java-Applikationen Rating: 0 out of 5 stars0 ratingsWeb Services mit Apache CXF: Schnell und einfach erklärt Rating: 0 out of 5 stars0 ratingsTroubleshooting und Monitoring von Exchange und Office 365 Rating: 0 out of 5 stars0 ratingsApache OFBiz: Schnellstarterbuch Rating: 0 out of 5 stars0 ratingsBenutzerhandbuch zu ProjectLibre 1.9.3 Rating: 0 out of 5 stars0 ratingsDer Microsoft 365 Trainer Microsoft 365 Certified- Enterprise Administrator Expert: Vorbereitung zur Prüfung MS-101 Rating: 0 out of 5 stars0 ratingsCanvas kurz & gut Rating: 0 out of 5 stars0 ratingsExtreme Programming (XP) für Scrum- Master und Product Owner: Scrum-Implementation mit XP-Praktiken effizienter gestalten Rating: 0 out of 5 stars0 ratingsProjekt- und Personaleinsatzplanung: Das Praxisbuch zu PlanningPME Rating: 0 out of 5 stars0 ratingsDer App-Entwicklungszyklus Rating: 0 out of 5 stars0 ratings
Programming For You
Die ultimative QNAP NAS Bibel - Das Praxisbuch - mit vielen Insider Tipps und Tricks - komplett in Farbe Rating: 0 out of 5 stars0 ratingsSQL – kurz & gut Rating: 0 out of 5 stars0 ratingsEigene Spiele programmieren – Python lernen: Der spielerische Weg zur Programmiersprache Rating: 0 out of 5 stars0 ratingsMicrosoft Word 2016 (Microsoft Press): Einfache Anleitungen für wichtige Aufgaben Rating: 0 out of 5 stars0 ratingsPerspektiven für Informatiker 2019: Branchenüberblick, Erfahrungsberichte und Tipps zum Berufseinstieg Rating: 0 out of 5 stars0 ratingsRaspberry Pi: Mach's einfach: Die kompakteste Gebrauchsanweisung mit 222 Anleitungen. Geeignet für Raspberry Pi 3 Modell B / B+ Rating: 0 out of 5 stars0 ratingsUser Experience Testing 3.0: Status Quo, Entwicklung und Trends Rating: 0 out of 5 stars0 ratingsReact lernen und verstehen Rating: 0 out of 5 stars0 ratingsJavaScript kurz & gut Rating: 3 out of 5 stars3/5Linux Grundlagen - Ein Einstieg in das Linux-Betriebssystem Rating: 0 out of 5 stars0 ratingsC++: Eine kompakte Einführung Rating: 0 out of 5 stars0 ratings.NET-Praxis: Tipps und Tricks zu .NET und Visual Studio Rating: 0 out of 5 stars0 ratingsRichtig einsteigen: Excel VBA-Programmierung: Für Microsoft Excel 2007 bis 2016 Rating: 0 out of 5 stars0 ratingsDie ultimative FRITZ!Box Bibel - Das Praxisbuch 2. aktualisierte Auflage - mit vielen Insider Tipps und Tricks - komplett in Farbe Rating: 0 out of 5 stars0 ratingsMicrocontroller für das IoT Rating: 0 out of 5 stars0 ratingsPowerprojekte mit Arduino und C: Schluss mit dem frustrierenden Ausprobieren von Code-Schnipseln! Rating: 0 out of 5 stars0 ratingsProgrammieren lernen mit Python 3: Schnelleinstieg für Beginner Rating: 0 out of 5 stars0 ratingsProgrammieren von Kopf bis Fuß Rating: 4 out of 5 stars4/5Linux Befehlsreferenz: Schnelleinstieg in die Arbeit mit der Konsole, regulären Ausdrücken und Shellscripting Rating: 0 out of 5 stars0 ratingsAndroid-Programmierung kurz & gut Rating: 0 out of 5 stars0 ratingsPraktisches Programmieren in C: Grundlagen und Tipps Rating: 0 out of 5 stars0 ratingsEinführung in Programmiersprachen Rating: 0 out of 5 stars0 ratingsPython kurz & gut: Für Python 3.x und 2.7 Rating: 3 out of 5 stars3/5JavaScript kinderleicht!: Einfach programmieren lernen mit der Sprache des Web Rating: 0 out of 5 stars0 ratingsGit kurz & gut Rating: 0 out of 5 stars0 ratingsAndroid-Entwicklung für Einsteiger - 20.000 Zeilen unter dem Meer: 2. erweiterte Auflage Rating: 0 out of 5 stars0 ratingsRaspberry Pi: Einstieg • Optimierung • Projekte Rating: 5 out of 5 stars5/5Das große Python3 Workbook: Mit vielen Beispielen und Übungen - Programmieren leicht gemacht! Rating: 4 out of 5 stars4/5Mikrocontroller in der Elektronik: Mikrocontroller programmieren und in der Praxis einsetzen Rating: 0 out of 5 stars0 ratings
Reviews for AngularJS
1 rating0 reviews
Book preview
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