Voici une série de 3 articles sur les tests d’intégration web en Javascript.

La popularité de la todo liste backbone comme exemple de code en fait un candidat idéal pour présenter les technos de test JS.

Un point commun de tous les exemples présentés est l’utilisation du pattern Page Object pour bien séparer l’écriture de la logique de test de la technique d’accès au système testé (SUT).

Les frameworks utilisés pour chaque articles :

L’exemple complet en CasperJS est disponible sur Github sur la branche master (voir le README pour exécuter les tests).

Composant Page Object avec CasperJS

  • Contient tous les appels à l’API Casper
  • Encapsule les sélecteurs CSS
  • Expose les fonctions pour lancer les actions sur le SUT
  • Expose les fonctions pour récupérer les informations sur l’état du SUT

Ecriture des TI avec Mocha / Chai, exemple de l’ajout des todos

  • Description de la suite avec la syntaxe Mocha
  • Lance les actions par l’intermédiaire du Page Object
  • Effectue les vérifications avec les assertions Chai
  • L’adhérence avec CasperJS en terme de gestion des étapes est masquée par la fonction test du Page Object

Limitations de CasperJS

  • Conçu au dessus de PhantomJS ne s’intègre donc pas par défaut avec le framework BDD Cucumber-js qui s’exécute dans Node.js
  • Les browsers les plus répandus (Chrome, Firefox,…) ne sont pas supportés

Cas d’usage possible

  • Tests d’intégrations frontend headless avec stub service

Dans l’article 2/3 on va utiliser le framework Zombie.js pour mettre en place simplement des tests BDD avec Cucumber-js.

Publicités