Tests unitaires
Progression
#Tests unitaires
À quoi ça sert ?
À quoi ça sert: prévenir les régressions, documenter le comportement et refactorer sereinement. Comment: assertions simples, unittest
/pytest
, cas nominaux/limites et isolation des effets de bord.
#Approche simple: assertions
pythonpython
1def add(a, b):2 return a + b3 4assert add(2, 3) == 5
#unittest
(stdlib)
pythonpython
1import unittest2 3def fact(n: int) -> int:4 return 1 if n <= 1 else n * fact(n-1)5 6class TestFact(unittest.TestCase):7 def test_base(self):8 self.assertEqual(fact(1), 1)9 self.assertEqual(fact(5), 120)10 11if __name__ == '__main__':12 unittest.main()
Chargement de l’éditeur...
#Bonnes pratiques
- Cas nominaux + cas limites (0, vide, très grand).
- Tests déterministes, indépendants, rapides; éviter l’ordre dépendant.
- Nommer clairement:
test_nom_du_comportement
. - Isoler FS/réseau avec des doubles (mocks) et des fixtures.
pytest
En pratique, pytest
simplifie l’écriture des tests et les fixtures. La philosophie reste la même: tests petits, lisibles, ciblés.
Quel trait rend un test unitaire efficace ?