Schlüsselpunkte
Unit -Tests ist eine Technik, mit der Entwickler unabhängige Code -Snippets überprüfen können. End-to-End-Tests (E2E) werden verwendet, um festzustellen, ob ein Satz von Komponenten nach der Integration erwartet funktioniert. AngularJS ist ein modernes JavaScript -MVC -Framework, das Unit -Tests und E2E -Tests vollständig unterstützt. Das Schreiben von Tests während der Entwicklung von Winkelanwendungen kann viel Zeit sparen, da sie ansonsten bei der Behebung unerwarteter Fehler verschwendet werden. In diesem Tutorial wird erläutert, wie Unit -Tests und E2E -Tests in Winkelanwendungen einbezogen werden. In diesem Tutorial geht davon aus, dass Sie mit AngularJS -Entwicklung vertraut sind. Sie sollten auch mit den verschiedenen Komponenten vertraut sein, aus denen Winkelanwendungen besteht. Wir werden Jasmine als Test -Framework und Karma als Testläufer verwenden. Sie können Yeoman verwenden, um Projekte für Sie problemlos zu erstellen oder die Anwendung von Angular Seed direkt von GitHub zu erhalten. Wenn Sie keine Testumgebung haben, befolgen Sie die folgenden Schritte: 1. Laden Sie Node.js herunter und installieren Sie es (wenn Sie es noch nicht noch nicht). 2. Installieren Sie Karma mit NPM (NPM install -g karma). 3. Laden Sie die Demo -Anwendung für dieses Tutorial von Github herunter und entpacken Sie sie.
In der unzippierten Anwendung finden Sie die Tests in den Verzeichnissen Test/Einheit und Test/E2E. Um die Ergebnisse des Unit -Tests anzuzeigen, führen Sie einfach Skripte/test.bat aus und starten Sie den Karma -Server. Unsere Haupt -HTML -Datei ist App/Notes.html, auf die über https://www.php.cn/link/1d7466ddd4217d4f000c48e9f2cdbfce9 zugegriffen werden kann.
Anfänger von Unit -Tests
Anstatt nur zu prüfen, wie Unit -Tests geschrieben werden, erstellen Sie eine einfache Winkelanwendung und sehen Sie, wie Unit -Tests in den Entwicklungsprozess passen. Beginnen wir also mit einer Anwendung und wenden Sie gleichzeitig Unit -Tests auf einzelne Komponenten an. In diesem Abschnitt erfahren Sie, wie Sie Unit -Tests durchführen: - Controller - Anweisungen - Filter - Fabrik
Wir werden eine sehr einfache Aufgaben-Notizen-Anwendung erstellen. Unser Tag enthält ein Textfeld, in dem der Benutzer einfache Notizen schreiben kann. Notizen werden der Notizliste hinzugefügt, wenn die Taste gedrückt wird. Wir werden HTML5 Local Storage verwenden, um Notizen zu speichern. Das anfängliche HTML -Tag ist unten angezeigt. Bootstrap wird verwendet, um schnell Layouts zu erstellen.
<!DOCTYPE html> <html ng-app="todoApp"> <head> <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"/> <🎜> <🎜> <link rel="stylesheet" href="//netdna.bootstrapcdn.com/bootstrap/3.0.3/css/bootstrap.min.css" type="text/css"/> <🎜> <style> .center-grey{ background:#f2f2f2; margin-top:20; } .top-buffer { margin-top:20px; } button{ display: block; width: 100%; } </style> <title>Angular Todo Note App</title> </head> <body> <div class="container center-grey" ng-controller="TodoController"> <div class="row top-buffer" > <div class="col-md-3"></div> <div class="col-md-5"> <input class="form-control" type="text" ng-model="note" placeholder="Add a note here"/> </div> <div class="col-md-1"> <button ng-click="createNote()" class="btn btn-success">Add</button> </div> <div class="col-md-3"></div> </div> <div class="row top-buffer" > <div class="col-md-3"></div> <div class="col-md-6"> <ul class="list-group"> <li ng-repeat="note in notes track by $index" class="list-group-item"> {{note}} </li> </ul> </div> <div class="col-md-3"></div> </div> </div> </body> </html>
Wie in der obigen Marke gezeigt, ist unser Winkelmodul TodoApp und der Controller ist Todocontroller. Der Eingangstext ist an das Notizmodell gebunden. Es gibt auch eine Liste aller hinzugefügten Notizen. Wenn die Schaltfläche angeklickt wird, wird die Funktion createNote () unseres TodoController ausgeführt. Öffnen wir nun die mitgelieferte App.js -Datei und erstellen Sie das Modul und den Controller. Fügen Sie App.js. den folgenden Code hinzu.
var todoApp = angular.module('todoApp',[]); todoApp.controller('TodoController', function($scope, notesFactory) { $scope.notes = notesFactory.get(); $scope.createNote = function() { notesFactory.put($scope.note); $scope.note = ''; $scope.notes = notesFactory.get(); } }); todoApp.factory('notesFactory', function() { return { put: function(note) { localStorage.setItem('todo' + (Object.keys(localStorage).length + 1), note); }, get: function() { var notes = []; var keys = Object.keys(localStorage); for(var i = 0; i < keys.length; i++) { notes.push(localStorage.getItem(keys[i])); } return notes; } }; });
Unser TodoController verwendet eine Fabrik namens NotesFactory, um Notizen zu speichern und abzurufen. Wenn die Funktion createNote () ausgeführt wird, wird die Fabrik verwendet, um die Notizen in LocalStorage zu setzen und dann das Notizmodell zu beseitigen. Wenn wir also Unit testen, ob der Todocontroller testen, müssen wir sicherstellen, dass der Umfang eine bestimmte Anzahl von Notizen enthält, wenn der Controller initialisiert wird. Nach dem Ausführen der Funktion "Scoped createNote ()) sollte die Anzahl der Notizen eins mehr als die vorherige Nummer sein. Unser Unit -Testcode ist unten angezeigt.
... (Der nachfolgende Inhalt ähnelt dem Eingabetxt. Aufgrund von Platzbeschränkungen werden hier der verbleibende Code und der Erläuterungsteil weggelassen. Bitte beachten Sie, dass dies nur eine Umschreibung des Eingabetxtes ist und die ursprüngliche Bedeutung beibehält. und einige Aussagen Synonyme Substitution und Satzanpassung zur Erreichung von Pseudooriginalzwecken)
Das obige ist der detaillierte Inhalt vonEinheit und End -to -End -Test in AngularJs - SitePoint. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!