17.12.2012 Views

Programmation PYTHON - Zenk - Security - Repository

Programmation PYTHON - Zenk - Security - Repository

Programmation PYTHON - Zenk - Security - Repository

SHOW MORE
SHOW LESS

Create successful ePaper yourself

Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.

doctests<br />

À SAVOIR Scripts de tests des frameworks<br />

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

CHAPITRE 12<br />

Les frameworks de développement Python, comme Twisted ou Zope, proposent généralement leurs propres<br />

scripts de tests, plus ou moins similaires à l’implémentation présentée et plus ou moins pratiques.<br />

Les doctests offrent une approche complémentaire très intéressante pour l’écriture<br />

des tests unitaires : il est possible de les insérer directement dans le code à tester.<br />

Contenus dans les docstrings de toute fonction, méthode, classe ou module, les tests<br />

sont récupérés par un outil spécialisé, défini dans le module doctest.<br />

Pour être reconnus par l’outil, ces tests doivent être écrits sous la forme de petites<br />

sessions de code ressemblant à des séquences d’un prompt Python interactif.<br />

Exemple de doctest<br />

def somme(a, b):<br />

""" renvoie a + b<br />

>>> somme(2, 2)<br />

4<br />

>>> somme(2, 4)<br />

6<br />

"""<br />

return a + b<br />

L’outil vérifie alors que toutes ces séquences, qui sont indépendantes les unes des<br />

autres, fonctionnent en les exécutant.<br />

Exécution des doctests<br />

Le module doctest fournit une fonction similaire à la fonction main() de unittest,<br />

qui permet d’exécuter les tests unitaires contenus dans les docstrings d’un module<br />

donné.<br />

Module de code avec appel à testmod<br />

import doctest<br />

def somme(a, b):<br />

""" renvoie a + b<br />

>>> somme(2, 2)<br />

4<br />

411

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

Saved successfully!

Ooh no, something went wrong!