Heim >Web-Frontend >js-Tutorial >Einheit und End -to -End -Test in AngularJs - SitePoint

Einheit und End -to -End -Test in AngularJs - SitePoint

尊渡假赌尊渡假赌尊渡假赌
尊渡假赌尊渡假赌尊渡假赌Original
2025-02-22 10:17:13965Durchsuche

Unit and End to End Testing in AngularJS - SitePoint

Schlüsselpunkte

  • Verwenden Sie Jasmine und Karma für Unit-Tests und End-to-End (E2E) -Tests von AngularJS, um die Zuverlässigkeit der Code zu gewährleisten und Fehler zu Beginn der Entwicklung festzustellen.
  • Schreiben von Unit -Tests für AngularJS -Komponenten wie Controller, Anweisungen, Filter und Fabriken zur Überprüfung unabhängiger Codeausschnitte.
  • Testen von End-to-End-Test (E2E) implementieren, um die Integration von Komponenten in AngularJS-Anwendungen zu überprüfen, um sicherzustellen, dass sie im tatsächlichen Szenario wie erwartet funktionieren.
  • Verwenden Sie Mocks und Spione in Unit -Tests, um funktionelle und isolierte Testumgebungen zu simulieren, die besonders für Dienste und Fabriken nützlich sind, die mit externen Ressourcen wie Lokalstorage interagieren.
  • Verbesserte E2E-Tests mit integrierten Testunterstützung von AngularJS und dem Protraktorgerüst, einschließlich Merkmalen wie automatischem Warten und spezifischen Locator-Richtlinien für Winkelanwendungen.

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.

<code class="language-html"><!DOCTYPE html>


    <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>


    <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>

</code>

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.

<code class="language-javascript">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;
    }
  };
});</code>

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!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn