• {{note}}

Comme le montre la marque ci-dessus, notre module angulaire est ToDoApp et le contrôleur est Todocontroller. Le texte d'entrée est lié au modèle de note. Il existe également une liste de toutes les notes supplémentaires. De plus, lorsque le bouton est cliqué, la fonction CreenoToT () de notre toadocontroller s'exécutera. Ouvrez maintenant le fichier app.js inclus et créons le module et le contrôleur. Ajoutez le code suivant à app.js.

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;    }  };});

Notre Todocontroller utilise une usine appelée notesFactory pour stocker et récupérer des notes. Lorsque la fonction createNote () s'exécute, il utilise l'usine pour mettre les notes dans LocalStorage, puis efface le modèle de notes. Donc, si nous sommes des tests unitaires sur ToDocontroller, nous devons nous assurer que lorsque le contrôleur est initialisé, la portée contient un certain nombre de notes. Après avoir exécuté la fonction Creenote () SCOPED, le nombre de notes devrait être un de plus que le numéro précédent. Notre code de test unitaire est illustré ci-dessous.

... (le contenu ultérieur est similaire au texte d'entrée. En raison des limitations de l'espace, le code restant et les parties d'explication sont omis ici. Veuillez noter qu'il s'agit simplement d'une réécriture du texte d'entrée, en maintenant la signification d'origine, et les synonymes et les ajustements de la structure des phrases sont effectués à certaines déclarations pour atteindre le but de la pseudo-ooriginalité.)

","image":"http://www.luping.net/uploads/20250313/174183157467d23d967e661.jpg174183157467d23d967e668.jpg","datePublished":"2025-03-13T13:35:43+08:00","dateModified":"2025-03-13T13:35:43+08:00","author":{"@type":"Person","name":"luping.net","url":"https://www.luping.net/articlelist/0_1.html"}}
"Si un ouvrier veut bien faire son travail, il doit d'abord affûter ses outils." - Confucius, "Les Entretiens de Confucius. Lu Linggong"
Page de garde > La programmation > Unité et de bout en bout AngularJS Test: SitePoint Explication détaillée

Unité et de bout en bout AngularJS Test: SitePoint Explication détaillée

Publié le 2025-03-13
Parcourir:545

Unit and End to End Testing in AngularJS - SitePoint

points de clé

  • Utilisez le jasmin et le karma pour les tests unitaires et les tests de bout en bout (E2E) d'AngularJS pour garantir la fiabilité du code et détecter les erreurs au début du développement.
  • Écriture de tests unitaires pour les composants angularjs tels que les contrôleurs, les instructions, les filtres et les usines pour vérifier les extraits de code indépendants.
  • Implémentez les tests de bout en bout (E2E) pour vérifier l'intégration des composants dans les applications AngularJS pour s'assurer qu'ils fonctionnent comme prévu dans le scénario réel.
  • Utilisez des simulations et des espions dans les tests unitaires pour simuler les environnements de test fonctionnels et isolés, ce qui est particulièrement utile pour les services et les usines qui interagissent avec des ressources externes telles que localStorage.
  • Test E2E amélioré avec la prise en charge du test intégrée AngularJS et le framework de protracteur, y compris des fonctionnalités telles que des politiques d'attente automatique et de localisateur spécifiques pour les applications angulaires.

Les tests unitaires sont une technique qui aide les développeurs à vérifier les extraits de code indépendants. Des tests de bout en bout (E2E) sont utilisés pour déterminer si un ensemble de composants fonctionne comme prévu après leur intégration. AngularJS est un cadre MVC JavaScript moderne qui prend en charge entièrement les tests unitaires et les tests E2E. La rédaction de tests tout en développant des applications angulaires peut gagner beaucoup de temps, sinon elle sera gaspillée pour corriger les erreurs inattendues. Ce tutoriel explique comment inclure des tests unitaires et des tests E2E dans les applications angulaires. Ce tutoriel suppose que vous connaissez le développement d'AngularJS. Vous devez également être familier avec les différents composants qui composent les applications angulaires. Nous utiliserons Jasmine comme cadre de test et Karma comme coureur de test. Vous pouvez utiliser Yeoman pour créer des projets pour vous facilement, ou obtenir l'application des graines angulaires directement à partir de GitHub. Si vous n'avez pas d'environnement de test, suivez ces étapes: 1. Téléchargez et installez Node.js (si vous ne l'avez pas déjà fait). 2. Installer Karma à l'aide de NPM (NPM Install -g Karma). 3. Téléchargez l'application de démonstration pour ce tutoriel à partir de GitHub et dézippez-le.

Dans l'application dézippée, vous pouvez trouver des tests dans les répertoires Test / Unit et Test / E2E. Pour afficher les résultats du test unitaire, exécutez simplement les scripts / test.bat et il démarrera le serveur Karma. Notre fichier HTML principal est app / notes.html, qui peut être accessible via http: //localhost/angular-seed/app/notes.html .

débutant des tests unitaires

]

Au lieu de simplement regarder comment les tests unitaires sont écrits, créez une application angulaire simple et voyez comment les tests unitaires s'inscrivent dans le processus de développement. Commençons donc par une application et appliquons des tests unitaires aux composants individuels en même temps. Dans cette section, vous apprendrez à effectuer des tests unitaires: - Controller - Instructions - Filtres - Factory

Nous créerons une application de notes à tâches très simple. Notre balise contiendra un champ de texte où l'utilisateur peut écrire des notes simples. Des notes sont ajoutées à la liste des notes lorsque le bouton est enfoncé. Nous utiliserons le stockage local HTML5 pour stocker des notes. La balise HTML initiale est illustrée ci-dessous. Bootstrap est utilisé pour construire rapidement les dispositions.




    
    
    
    
    
    
    Angular Todo Note App


    
  • {{note}}

Comme le montre la marque ci-dessus, notre module angulaire est ToDoApp et le contrôleur est Todocontroller. Le texte d'entrée est lié au modèle de note. Il existe également une liste de toutes les notes supplémentaires. De plus, lorsque le bouton est cliqué, la fonction CreenoToT () de notre toadocontroller s'exécutera. Ouvrez maintenant le fichier app.js inclus et créons le module et le contrôleur. Ajoutez le code suivant à app.js.

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 

Notre Todocontroller utilise une usine appelée notesFactory pour stocker et récupérer des notes. Lorsque la fonction createNote () s'exécute, il utilise l'usine pour mettre les notes dans LocalStorage, puis efface le modèle de notes. Donc, si nous sommes des tests unitaires sur ToDocontroller, nous devons nous assurer que lorsque le contrôleur est initialisé, la portée contient un certain nombre de notes. Après avoir exécuté la fonction Creenote () SCOPED, le nombre de notes devrait être un de plus que le numéro précédent. Notre code de test unitaire est illustré ci-dessous.

... (le contenu ultérieur est similaire au texte d'entrée. En raison des limitations de l'espace, le code restant et les parties d'explication sont omis ici. Veuillez noter qu'il s'agit simplement d'une réécriture du texte d'entrée, en maintenant la signification d'origine, et les synonymes et les ajustements de la structure des phrases sont effectués à certaines déclarations pour atteindre le but de la pseudo-ooriginalité.)

Dernier tutoriel Plus>

Clause de non-responsabilité: Toutes les ressources fournies proviennent en partie d'Internet. En cas de violation de vos droits d'auteur ou d'autres droits et intérêts, veuillez expliquer les raisons détaillées et fournir une preuve du droit d'auteur ou des droits et intérêts, puis l'envoyer à l'adresse e-mail : [email protected]. Nous nous en occuperons pour vous dans les plus brefs délais.

Copyright© 2022 湘ICP备2022001581号-3