AngularJS: Testing und Best Practices
5/5
()
About this ebook
Read more from Sebastian Springer
Testgetriebene Entwicklung mit JavaScript: Das Handbuch für den professionellen Programmierer Rating: 0 out of 5 stars0 ratings
Related to AngularJS
Titles in the series (100)
Einstieg in Google Go Rating: 0 out of 5 stars0 ratingsQualitätssicherung mit JavaScript und PHP 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 ratingsÜberzeugende Präsentationen: Konzeption, Technik und Design Rating: 0 out of 5 stars0 ratingsGeolocation mit PHP: Foursquare-API, Google Places & Qype Rating: 0 out of 5 stars0 ratingsSkalierbare Softwaresysteme: Design, Betrieb und Optimierungspotenziale Rating: 0 out of 5 stars0 ratingsJavaScript für Eclipse-Entwickler: Orion, RAP und GWT Rating: 0 out of 5 stars0 ratingsUX Design für Tablet-Websites: Ein Überblick Rating: 0 out of 5 stars0 ratingsJava 7: Fork-Join-Framework und Phaser Rating: 0 out of 5 stars0 ratingsErfolgreiche Spieleentwicklung: OpenCL Rating: 0 out of 5 stars0 ratingsAlgorithmen: Grundlagen und Implementierung Rating: 0 out of 5 stars0 ratingsIT Wissensmanagement: Theorie und Praxis Rating: 0 out of 5 stars0 ratingsServiceorientierte Architektur: Anforderungen, Konzeption und Praxiserfahrungen Rating: 0 out of 5 stars0 ratingsBig Data: Technologiegrundlagen Rating: 0 out of 5 stars0 ratingsQualität in IT-Architekturen: Strategie und Planung Rating: 0 out of 5 stars0 ratingsSharePoint-Entwicklung für Einsteiger Rating: 0 out of 5 stars0 ratingsErfolgreiche Spieleentwicklung: OpenGL, OpenAL und KI Rating: 0 out of 5 stars0 ratingsJava EE Security Rating: 0 out of 5 stars0 ratingsAmazon Web Services für .NET Entwickler Rating: 0 out of 5 stars0 ratingsNutzeraspekte in Suchmaschinen: Komponenten für eine gelungene Usability-Gestaltung Rating: 0 out of 5 stars0 ratingsJavaScript auf dem Server Rating: 0 out of 5 stars0 ratingsNFC: Near Field Communication für Android-Entwickler Rating: 5 out of 5 stars5/5Zend Framework 2: Für Einsteiger und Umsteiger Rating: 0 out of 5 stars0 ratingsNintex Workflow: Konzepte und Strategien für leistungsfähige SharePoint-Workflows Rating: 0 out of 5 stars0 ratingsTFS 2012 Versionskontrolle: Grundlagen, Check-In Policies und Branch-Modelle Rating: 0 out of 5 stars0 ratingsBig Data: Executive Briefing Rating: 0 out of 5 stars0 ratingsF#: Ein praktischer Einstieg Rating: 0 out of 5 stars0 ratingsTFS 2012 Anforderungsmanagement: Work Items und Prozessvorlagen Rating: 0 out of 5 stars0 ratingsTFS 2012 TFS 2012 Team Build - Architektur und Installation: Architektur und Installation Rating: 0 out of 5 stars0 ratings
Related ebooks
jQuery Mobile: Unit Testing Rating: 0 out of 5 stars0 ratingsAutomatisiertes Testen: Testautomatisierung mit Geb und ScalaTest Rating: 0 out of 5 stars0 ratingsDependency Injection in Java: Testing mit CDI-Unit und DI-Frameworks Rating: 0 out of 5 stars0 ratingsSpring Boot und Spring Cloud Rating: 5 out of 5 stars5/5Java EE Testing mit Arquillian Rating: 0 out of 5 stars0 ratingsKompakteinstieg: Continuous Integration mit Jenkins Rating: 0 out of 5 stars0 ratingsTestwissen für Java-Entwickler Rating: 0 out of 5 stars0 ratingsWeb Services mit Apache CXF: Schnell und einfach erklärt Rating: 0 out of 5 stars0 ratingsModerne Webanwendungen mit AngularJS Rating: 0 out of 5 stars0 ratingsExpertentipps zu Angular: Neuerungen in Angular 6, Umgang mit Microservices, Performanz und UX-Design Rating: 0 out of 5 stars0 ratingsProgressive Web-Apps: Offlinefähige Web-Anwendungen mit nativen Qualitäten Rating: 0 out of 5 stars0 ratingsProjektmanagement mit Scrum: Tools zur Entwicklung von Software Rating: 0 out of 5 stars0 ratingsTroubleshooting und Monitoring von Exchange und Office 365 Rating: 0 out of 5 stars0 ratingsJavaFX Rendering & 3D Rating: 0 out of 5 stars0 ratingsVaadin mit Eclipse, Clojure und OSGi Rating: 0 out of 5 stars0 ratingsCDI - Dependency Injection in Java EE 7: Dependency Injection in Java EE 7 Rating: 0 out of 5 stars0 ratingsApache Tamaya: Einstieg in die Konfiguration in Java Rating: 0 out of 5 stars0 ratingsSoftwarequalität in PHP-Prozessen: Installation und Betrieb eines Jenkins-Servers Rating: 0 out of 5 stars0 ratingsJavaScript auf dem Server Rating: 0 out of 5 stars0 ratingsAngular: Das Praxisbuch zu Grundlagen und Best Practices Rating: 0 out of 5 stars0 ratingsWebentwicklung mit dem Play Framework Rating: 0 out of 5 stars0 ratingsSpock, Geb und Selenium: Testframeworks unter die Lupe genommen Rating: 0 out of 5 stars0 ratingsApps mit Azure Rating: 0 out of 5 stars0 ratingsVaadin Schnelleinstieg Rating: 0 out of 5 stars0 ratingsDie Serverwelt von Node.js Rating: 0 out of 5 stars0 ratingsASP.NET Core: Eine Einführung Rating: 0 out of 5 stars0 ratingsArchitekturpatterns mit Python: Test-Driven Development, Domain-Driven Design und Event-Driven Microservices praktisch umgesetzt Rating: 0 out of 5 stars0 ratingsErfahrungen mit Eclipse 4: aus der Praxis für die Praxis Rating: 0 out of 5 stars0 ratingsPerformante Webanwendungen: Client- und serverseitige Techniken zur Performance-Optimierung Rating: 0 out of 5 stars0 ratingsAufsetzen, Testen und Betrieb einer Android-App Rating: 0 out of 5 stars0 ratings
Programming For You
Die ultimative FRITZ!Box Bibel - Das Praxisbuch 2. aktualisierte Auflage - mit vielen Insider Tipps und Tricks - komplett in Farbe 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 ratingsSQL – kurz & gut Rating: 0 out of 5 stars0 ratingsPraktisches Programmieren in C: Grundlagen und Tipps Rating: 0 out of 5 stars0 ratingsHTML5-Programmierung von Kopf bis Fuß: Webanwendungen mit HTML5 und JavaScript Rating: 0 out of 5 stars0 ratingsPython-Grundlagen Rating: 0 out of 5 stars0 ratingsGames | Game Design | Game Studies: Eine Einführung (Deutschsprachige Ausgabe) Rating: 0 out of 5 stars0 ratingsRaspberry Pi: Einstieg • Optimierung • Projekte Rating: 5 out of 5 stars5/5Traumjob IT 2021: Branchenüberblick, Erfahrungsberichte und Tipps zum Berufseinstieg Rating: 5 out of 5 stars5/5.NET-Praxis: Tipps und Tricks zu .NET und Visual Studio Rating: 0 out of 5 stars0 ratingsUser Experience Testing 3.0: Status Quo, Entwicklung und Trends Rating: 0 out of 5 stars0 ratingsSQL von Kopf bis Fuß Rating: 4 out of 5 stars4/5Python kinderleicht!: Einfach programmieren lernen – nicht nur für Kids Rating: 0 out of 5 stars0 ratingsPython kurz & gut: Für Python 3.x und 2.7 Rating: 3 out of 5 stars3/5Mikrocontroller in der Elektronik: Mikrocontroller programmieren und in der Praxis einsetzen Rating: 0 out of 5 stars0 ratingsC++ – kurz & gut: Aktuell zu C++17 Rating: 4 out of 5 stars4/5Android-Entwicklung für Einsteiger - 20.000 Zeilen unter dem Meer: 2. erweiterte Auflage Rating: 0 out of 5 stars0 ratingsPython programmieren lernen: Der spielerische Einstieg mit Minecraft Rating: 0 out of 5 stars0 ratingsPython | Schritt für Schritt Programmieren lernen: Der ultimative Anfänger Guide für einen einfachen & schnellen Einstieg Rating: 0 out of 5 stars0 ratingsDas große Python3 Workbook: Mit vielen Beispielen und Übungen - Programmieren leicht gemacht! Rating: 4 out of 5 stars4/5Programmieren für Einsteiger: Teil 1 Rating: 0 out of 5 stars0 ratingsProgrammieren lernen mit Python 3: Schnelleinstieg für Beginner Rating: 0 out of 5 stars0 ratingsC von Kopf bis Fuß Rating: 3 out of 5 stars3/5Linux Grundlagen - Ein Einstieg in das Linux-Betriebssystem Rating: 0 out of 5 stars0 ratingsEinstieg in TypeScript: Grundlagen für Entwickler Rating: 0 out of 5 stars0 ratingsHacken mit Python und Kali-Linux: Entwicklung eigener Hackingtools mit Python unter Kali-Linux 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 ratingsDocker: Webseiten mittels Containerarchitektur erstellen Rating: 3 out of 5 stars3/5
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