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.

406<br />

Techniques avancées<br />

QUATRIÈME PARTIE<br />

Méthodes d’assertion de TestCase<br />

Dans le code de test, la directive assert() qui permet de valider un résultat, lève en cas<br />

de problème une erreur de type AssertionError, qui est interceptée par le framework.<br />

Cette erreur n’apporte pas explicitement d’explications sur le problème rencontré et<br />

nécessite de toujours fournir une expression qui renvoie une valeur booléenne.<br />

TestCase fournit une batterie de méthodes d’assertions qui couvrent tous les types de<br />

tests et clarifient le code, par leurs noms explicites. Chacune de ces méthodes fournit<br />

un message d’erreur standard pour le test effectué :<br />

assert_(expr, msg=None) : équivalente à la directive assert(). Lève une exception<br />

si l’expression fournie ne vaut pas True. Si msg est fourni, il est associé à<br />

l’exception. Synonymes : assertTrue, failUnless.<br />

assertFalse(expr, msg=None) : similaire à assert_() mais teste si l’expression<br />

renvoie False. Synonyme : failIf.<br />

assertRaises(excClass, callableObj, *args, **kwargs) : permet de valider<br />

que l’objet callableObj lève bien une erreur de type excClass lorsqu’il est appelé<br />

par un appel excClass(*args, **kwargs). args et kwargs étant optionnels.<br />

Synonyme : failUnlessRaises.<br />

assertAlmostEqual(first, second, places=7, msg=None) : permet de tester<br />

que round(second-first, places) renvoie 0. places détermine donc la puissance<br />

de l’arrondi appliqué au moment de la comparaison. Cette méthode est<br />

utile pour les tests manipulant des objets de type float. Si msg est fourni il est<br />

associé à l’exception. Un message par défaut est utilisé dans le cas contraire.<br />

Synonymes : assertAlmostEquals, failUnlessAlmostEqual.<br />

assertNotAlmostEqual(first, second, places=7, msg=None) : équivalente à la<br />

méthode précédente mais teste que round(second-first, places) ne renvoie<br />

pas 0. Si msg est fourni il est associé à l’exception. Un message par défaut est utilisé<br />

dans le cas contraire. Synonymes : assertNotAlmostEquals, failIfAlmostEqual.<br />

assertEqual(first, second, msg=None) : teste que first est égal à second. Si<br />

msg est fourni il est associé à l’exception. Un message par défaut est utilisé dans le<br />

cas contraire. Synonymes : assertEquals, failUnlessEqual<br />

assertNotEqual : équivalente à la méthode précédente, mais teste l’inégalité.<br />

Synonymes : assertNotEquals, failIfEqual.<br />

On peut donc remplacer les trois assertions par le code suivant.

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

Saved successfully!

Ooh no, something went wrong!