web-dev-qa-db-fra.com

Test AngularJS: rapporteur, karma, jasmin dans une application Yeoman

J'utilise ce générateur yeoman: https://github.com/Swiip/generator-gulp-angular

Il installe trois applications de test: Jasmine, Karma, Protractor Selon cet article ( Dois-je utiliser Protractor ou Karma pour mes tests de bout en bout? ), je devrais utiliser: Karma pour les petits tests de par exemple un seul contrôleur. Protactor si je veux tester l'ensemble de l'application et simuler un utilisateur parcourant mon application. Selon ce blog ( http://andyshora.com/unit-testing-best-practices-angularjs.html ) j'utiliserais Jasmine pour les tests unitaires et Karma pour les tests d'intégration de bout en bout.

Je suppose que Jasmine est le langage où les tests sont écrits et les deux autres exécutent le code, est-ce correct? De plus, si je n'ai jamais écrit de test, qui est le plus important à apprendre en premier/à se concentrer?

19
Andi Giga

Karma est un testeur, il exécute donc votre test. Jasmine est le framework qui vous permet d'écrire un test

À mon avis, à Angularjs, vous:

  • doit services de test unitaire, car votre code d'entreprise est là.
  • devrait contrôleur de test unitaire, car les actions des utilisateurs sont là.
  • peut directives personnalisées de test unitaire (si vous prévoyez de partager cette directive avec d'autres, c'est un must )

Le rapporteur est fait pour les tests E2E (teste la navigation comme un vrai utilisateur). Il combine WebDriverJS avec Jasmine et vous permet d'écrire des tests de bout en bout (vous simulez un navigateur réel et prenez des actions réelles) avec la syntaxe Jasmine.

Ce type de test est également très important dans une application Web.

Vous ne devez pas tout tester, en particulier au début du projet, ces types de tests s'accompagnent généralement d'un niveau élevé de maintenance (c'est-à-dire que lorsque vous changez d'écran, vous devrez peut-être changer le test).

Ce que je fais, c'est tester le chemin critique et les fonctionnalités. J'ai fait une application de lecture, donc dans mon cas, c'était la connexion, l'inscription, le paiement, le livre d'accès et le lecteur d'accès.

45
Boris Charpentier