Académique Documents
Professionnel Documents
Culture Documents
TDD
Le TDD est une méthode de développement logiciel qui consiste à développer les
tests avant de développer le code. Le TDD fonctionne comme suit :
On écrit un test qui décrit une fonctionnalité du programme
On exécute le test, qui doit échoué parce que la fonctionnalité n’a pas été
développée
Un écrire un code simple pour faire réussir le test
Re-écrire (refactor) le code pour qu’il répond au critères de simplicité
Répéter le processus pour les autres fonctionnalités
Critères de simplicité
Un ensemble de critères, par ordre de priorité, proposés par Kent Beck pour
évaluer si un code source est "assez simple":
le code est vérifié par des tests automatisés (tous les tests doivent réussir)
Un programme retourne Fizz si un nombre est divisible par 3, Buzz s’il est divisible
par 5, et FizzBuzz s’il est divisible par les deux. Le programme retourne le même
nombre s’il n’est divisible ni par 3 ni par 5
Références
Agile Alliance: https://www.agilealliance.org
Developers tend to mock dependencies that make testing difficult, i.e., classes
that are hard to set up, too slow or that depend on external resources
Source : Spadini, Davide, et al. "To mock or not to mock? An empirical study on mocking practices. (2017)
Example - Normal test
Example - test with patch
Example - test with Mock
Example - test with Mock/side_effect
Patch vs Mock
patch is preferred over Mock() because it ensures that the patch is reverted after
the test so there are no side effects on other tests or other code.
Exercice : Password-Strength-Checker
Use TDD to write a password strength checker that only accepts a password if it