17.12.2012 Views

Programmation PYTHON - Zenk - Security - Repository

Programmation PYTHON - Zenk - Security - Repository

Programmation PYTHON - Zenk - Security - Repository

SHOW MORE
SHOW LESS

You also want an ePaper? Increase the reach of your titles

YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.

Un simple test avec PyUnit<br />

>>> import unittest<br />

>>> class MyTestCase(unittest.TestCase):<br />

... def test_one(self):<br />

... self.assertEquals(sum((2, 3)), 5)<br />

...<br />

<strong>Programmation</strong> dirigée par les tests<br />

CHAPITRE 12<br />

Il est nécessaire d’équiper les modules de test de code supplémentaire pour construire<br />

des suites de tests. Enfin, pour lancer une campagne de test, un script qui collecte les<br />

tests devient vite indispensable.<br />

PyUnit impose des méthodes pour les assertions reprises de Java, qui sont verbeuses.<br />

Le seul mérite de cette similitude étant de permettre à un développeur maîtrisant<br />

Junit d’être productif directement avec PyUnit et inversement.<br />

Toute cette infrastructure alors que le seul test tient en une ligne !<br />

Test nu<br />

>>> assert sum((2, 3)), 5<br />

Des projets communautaires proposent des alternatives intéressantes, qui résolvent<br />

ces défauts de PyUnit. Nose (http://somethingaboutorange.com/mrl/projects/nose/) est<br />

probablement le projet le plus intéressant. Il se base sur de simples conventions de<br />

nommage pour l’écriture de tests et fournit un script qui collecte automatiquement<br />

les modules dont le nom commence par test. Les tests en eux-mêmes peuvent être<br />

de simples fonctions du moment qu’elles utilisent aussi un préfixe test.<br />

Test compatible Nose<br />

>>> def test_one():<br />

... assert sum((2, 3)), 5<br />

...<br />

L’intérêt de Nose est de lancer également les tests écrits classiquement avec<br />

unittest.<br />

Il est possible qu’à terme unittest soit remplacé par un outil aux fonctionnalités<br />

proches de Nose. Des travaux communautaires laisseraient supposer que cette modification<br />

aura lieu dans les années à venir.<br />

429

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!