Introduction aux tests unitaires dans Drupal

· 3 min de lecture

Publication originale

Cet article a été publié à l'origine le 9 juillet 2008 sur The Standard, le blogue de Raincity Studios, sous la signature « Harry Wang ». Cet article reflète le contexte et les outils de l'époque; certains liens et services mentionnés n'existent plus. Article traduit de l'anglais. La version anglaise est le texte original.

Voir l'original dans l'Internet Archive

Dans le but d'améliorer nos processus d'assurance qualité et de débogage, Raincity Studios a envisagé d'utiliser les tests unitaires. Ce sujet retient beaucoup l'attention de la communauté en ce moment, et je dois dire qu'il m'intéresse tout autant; il ne m'en fallait pas plus pour creuser un peu la question.

Qu'est-ce que les tests unitaires?

Le principe de base des tests unitaires est de créer des scripts qui vérifient que le code respecte des caractéristiques précises. De façon générale, les tests unitaires servent à vérifier le comportement d'une fonction donnée dans des conditions ou des circonstances précises. Il pourrait s'agir, par exemple, de vérifier qu'une fonction trie correctement des entiers en plaçant les plus grandes valeurs à la fin de la liste.

Comme c'est le programmeur lui-même qui profite le plus de ces tests, il est généralement logique qu'il soit chargé de mettre en place les tests unitaires. Ceux-ci confirmeront simplement, ou non, que le code fonctionne comme prévu.

Pourquoi des tests unitaires?

Les développeurs, y compris les drupaliens, ont tendance à exécuter régulièrement leur code pour vérifier qu'il n'y a ni erreur de syntaxe ni erreur d'exécution dans leurs scripts. Mais valider le code avec le compilateur ou l'interpréteur signifie seulement qu'il est grammaticalement correct; rien ne garantit encore qu'il fonctionne comme prévu. Heureusement, les tests unitaires peuvent nous faciliter la vie. En mettant en place des tests unitaires, nous pouvons nous assurer que le code respecte des cas d'utilisation prédéfinis.

Avantages et bienfaits :

Ce qui suit s'inspire largement de testage.net :

  1. Validation : vous pouvez tester chaque fonction tout au long du processus de développement. Même dans la plupart des cas de réusinage d'une fonction, les tests unitaires n'ont pas à être modifiés.
  2. Conception et planification : écrire les tests unitaires avant les fonctions amène les développeurs à envisager les cas d'utilisation d'un point de vue externe; ce faisant, on a tendance à créer des fonctions faciles à appeler et à tester.
  3. C'est de la documentation : les tests unitaires sont une bonne façon de produire de la documentation d'utilisation et de la documentation fonctionnelle. Cette documentation existe sous forme de ressource compilable et exécutable, mise à jour en même temps que le code.

Les tests unitaires peuvent être exécutés automatiquement et s'intégrer harmonieusement à votre processus de développement et de déploiement. On peut les lancer avant de verser le code dans le dépôt ou après l'ajout de nouveaux modules, pour s'assurer que les fonctionnalités existantes n'ont pas été compromises. Vous pouvez aussi lancer les tests après avoir déployé des changements d'un environnement de développement vers un environnement de préproduction, ce qui réduit la dépendance aux essais et erreurs pour détecter les problèmes.

Quels outils de test Drupal offre-t-il?

Le principal outil de tests unitaires dans Drupal est le module Simpletest. Ce module est une extension Drupal du projet Simpletest de tests unitaires pour PHP en général. Le module Drupal ajoute une série de fonctions propres aux tests unitaires dans Drupal. Par exemple, il étend Simpletest pour permettre la création d'utilisateurs et de nœuds, la définition de variables et la soumission de formulaires dans le cadre de Drupal.

Comment configurer le module Simpletest?

Robert Douglass, de Lullabot, a déjà écrit une très bonne introduction à SimpleTest, et je me permets de lui emprunter ses mots ci-dessous :

Pour commencer à exécuter des tests unitaires sur votre installation Drupal, téléchargez la plus récente version du module Simpletest et installez-la comme n'importe quel autre module. Veuillez noter que vous ne devriez pas installer ce module sur un site en production. Il est conçu uniquement pour le développement et la préproduction, et l'exécution des tests modifiera l'état de votre base de données. Exécuter les tests unitaires simpletest sur un site en production pourrait entraîner des pertes de données ou un comportement imprévisible.

Le module Drupal dépend de la bibliothèque Simpletest, que vous pouvez télécharger sur Sourceforge.net. La plus récente version, au moment d'écrire ces lignes, est simpletest_1.0.1. Le téléchargement depuis Sourceforge est une archive tar que vous devez extraire dans le répertoire du module simpletest.

Maladroitement traduit du chinois par Ronan Berder.

Votre entreprise mérite d'être trouvée.

Parlez-nous de votre projet. Nous vous répondons en français ou en anglais, et nous nous déplaçons partout dans la MRC de Papineau.

Affichage

Vos choix restent dans ce navigateur. Rien n'est envoyé.

Taille du texte
100 %
Couleurs
Lecture
Autres aides
Accessibilité du site