[MUSIK]
In der vorherigen Vorlesung und Übung, die der Vorlesung folgte,
haben wir die Verwendung von Komponententests in Angular untersucht.
Wir haben gesehen, wie die verschiedenen Teile unserer Angular-Anwendung, die Komponenten,
die Dienste, die Direktiven, die Rohre alle mit Komponententests getestet werden können.
Aber natürlich
zeigen Komponententests nicht alles über die Interaktion zwischen den Komponenten.
Hier können wir die durchgängigen Teststrategien
sehen, wie die gesamte Anwendung als eine Einheit funktioniert.
In dieser Vorlesung werden wir die Verwendung von End-to-End-Tests untersuchen und
welche Rolle sie in der gesamten Teststrategie für unsere Angular-Anwendungen spielen.
In der folgenden Übung werden wir kurz untersuchen, wie wir
End-to-End-Tests für unsere Angular-Anwendung durchführen können, indem wir ein Werkzeug namens Winkelmesser verwenden.
Wie wir bereits in der vorangegangenen Vorlesung erfahren haben,
bieten Unit-Tests uns eine wunderbare Gelegenheit, unsere Einheiten isoliert zu testen. Wir
stellen sicher, dass unsere Einheiten das ausführen, was von ihnen erwartet wird,
ihre Logik korrekt ist und die Interaktion zwischen der Komponente und
ihrer Vorlage gut etabliert ist.
Aber natürlich
vervollständigen Komponententests nicht das gesamte Bild, wie eine typische Angular-Anwendung funktioniert.
Sie haben keine einzelnen Einheiten, die isoliert arbeiten.
Stattdessen interagieren Ihre Komponenten mit Services.
Die Komponenten können Typen verwenden.
Die Dienste wiederum werden mit dem Backend interagieren, um die Daten zu holen.
Und dann ist die Komponente selbst verantwortlich für
das Rendern der Ansichten mit den Vorlagen für die Komponente.
Wie funktioniert dieser ganze Satz von Einheiten zusammen?
Und wie stellen wir sicher, dass die Zusammenarbeit dieser
Einheiten völlig frei von Problemen ist?
Das ist also, wo End-to-End-Tests und auf dem Weg,
Integrationstests hilft uns, diese Art von Szenarien abzudecken.
Selbstverständlich spielen Komponententests eine wichtige Rolle in der gesamten Teststrategie.
Aber ohne End-to-End-Tests
können wir nicht ganz sicher sein, dass unsere Anwendung wie erwartet funktioniert.
Eine Sache, die ich betonen muss, ist, dass Komponententests schnell und
sehr einfach zu wiederholen sind und mehrfach durchgeführt werden können.
Integrationstests und End-to-End-Tests sind langsam und werden daher
nur sparsam verwendet, um zu bestätigen, dass Ihre Anwendung wie erwartet ausgeführt wird.
Wenn wir also unsere allgemeine Teststrategie
betrachten, können wir sie als organisiert in Form einer Pyramide betrachten.
An der Unterseite der Pyramide, die die gesamte Basis besetzt und
das Fundament unserer Gesamtteststrategie bildet, befinden sich Komponententests.
Wie wir gelernt haben, ermöglichen Unit-Tests es uns, die einzelnen Einheiten isoliert zu testen, um
sicherzustellen, dass ihre Logik und
die Art und Weise, wie diese Einheiten funktionieren, korrekt sind.
Und diese Tests können sehr häufig wiederholt werden.
Und in der Tat, sollte häufig wiederholt werden, um sicherzustellen, dass die einzelnen Einheiten
wie erwartet funktionieren.
Natürlich würden auf einer zweiten Ebene dieser Strategie Integrationstests sein.
Wie arbeitet eine kleine Gruppe von Einheiten zusammen, um alles
zu implementieren, was von dieser Gruppe von Einheiten getan werden muss?
Vielleicht könnten wir also eine Komponente zusammen mit
ihren Diensten testen, um zu sehen, wie der Informationsfluss zwischen ihnen geschieht.
Aber an der Spitze dieser Pyramide ist End-to-End-Tests,
bei denen wir uns die Gesamtanwendung ansehen.
Und wie gut die Gesamtanwendung funktioniert und die
erwarteten Anforderungen erfüllt.
Das ist also, wo wir die Verwendung von End-to-End-Tests sehen.
Wie Sie von diesem Diagramm vielleicht bereits erwarten, sind End-to-End-Tests langsam.
Und so führen wir nicht sehr häufig durchgängige Tests durch, stattdessen
bilden Unit-Test die Kernstrategie für unser Testen unserer Angular-Anwendung.
End-to-End-Tests tragen zum Gesamtbild bei, aber sie werden nicht so
häufig durchgeführt, sind aber immer noch ein wesentlicher Bestandteil unserer Teststrategie.
Wie führen wir End-to-End-Tests durch?
Lassen Sie uns kurz über die Tools sprechen, die für uns zur Verfügung stehen.
Die Winkel-Testumgebung für
End-to-End-Tests wird von einem Werkzeug namens Winkelmesser unterstützt.
Wer sagt, dass Geeks keinen Sinn für Humor haben?
Winkelmesser, Angular, da gehst du.
Also, was genau ist Winkelmesser?
Winkelmesser ist, wie Sie vielleicht erwarten, ein Knotenprogramm.
Dies ermöglicht es uns, End-to-End-Tests durchzuführen.
So führt Winkelmesser die Tests gegen Ihre Anwendung aus.
So lädt Protractor Ihre Anwendung in einen Browser und interagiert mit
der Anwendung genau wie ein echter Benutzer mit Ihrer Anwendung interagiert.
Wir betrachten also die Interaktion mit Ihrer Anwendung,
obwohl programmgesteuert, aber die Art von Operationen, die
ein typischer Benutzer ausführen wird, wie Klicken auf Links, Ausfüllen von Formularen.
Absenden von Formularen, Navigieren zu verschiedenen Teilen Ihrer Anwendung und so weiter.
Dies ist, wo Protractor nutzt die Verwendung eines WebDriver, um
Browser zu steuern, auf denen die Tests durchgeführt werden können.
Ein solches App-Framework wird als Selenium Framework bezeichnet,
das für automatisierte Tests in Browsern verwendet wird.
Wenn Sie Chrome als Teil Ihrer Teststrategie oder Firefox
verwenden, können Sie eine sogenannte direkte Verbindung verwenden.
Das ist über einen Winkelmesser verfügbar, um direkt mit diesen Browsern zu verbinden und
Tests in diesen Browsern durchzuführen.
Nun nutzen die Tests selbst den Anpassungsrahmen, um
den Test auszudrücken.
Sie würden also immer noch sehen,
dass der Benutzer einen int beschreibt und vor jedem, den Sie mit Komponententests gesehen haben.
Abgesehen davon, dass wir jetzt die Winkelmesser Unterstützung nutzen,
um echte benutzerähnliche Interaktionen mit unserer
Anwendung mithilfe von Code generieren zu können.
Das ist also, was wir in der Übung lernen werden, die diesem speziellen
Vortrag folgt.
Wir werden Winkelmesser nutzen und unsere End-to-End-Teststrategien schreiben.
Und natürlich nutzen Sie die Angular CLI-Unterstützung für die
Durchführung von End-to-End-Tests in der Übung, die dieser Vorlesung folgt.
( MUSIK)