Applez Nous: +41 22 518 70 00
Le test unitaire valide qu’un composant logiciel isolé (une fonction, une méthode) réagit exactement comme spécifié face à un jeu d’entrées données. La mise en place d’une couverture de tests automatisée prévient les régressions lors des refactorisations futures et garantit la maintenabilité du logiciel.
Intégré directement dans la bibliothèque standard de Python, unittest repose sur des classes de test héritant de unittest.TestCase et propose un ensemble riche d’assertions :
import unittest
def diviser_capital(montant: float, parts: int) -> float:
if parts <= 0:
raise ValueError("Le nombre de parts doit être supérieur à zéro.")
return montant / parts
class TestAlgorithmesFinanciers(unittest.TestCase):
def test_division_nominale(self):
self.assertAlmostEqual(diviser_capital(100.0, 4), 25.0)
def test_division_parts_negatives(self):
with self.assertRaises(ValueError):
diviser_capital(100.0, -2)
if __name__ == '__main__':
unittest.main()
Le développement piloté par les tests inverse le cycle traditionnel en trois phases (Red - Green - Refactor) : écrire d'abord le test unitaire qui échoue, rédiger ensuite le code minimal nécessaire pour faire passer le test au vert, puis refactoriser la structure pour parfaire sa propreté.
Synthèse pédagogique : Dans l'industrie logicielle suisse, un code sans tests unitaires automatisés n'est pas considéré comme terminé.