PaliSkill
Python avancé

Leçon 9 / 10 — Chapitre 8: Structurer et tester un projet

Organiser des fonctions de test dans un fichier dédié

Regrouper les assert dans des fonctions de test dédiées, plutôt qu'en ligne dans le script principal, rend le résultat de chaque test plus clair — et permet de continuer les autres tests même si l'un d'eux échoue.

def diviser(a, b):
    if b == 0:
        raise ValueError("Division par zero")
    return a / b

def tester_diviser_cas_normal():
    assert diviser(10, 2) == 5.0
    assert diviser(9, 3) == 3.0

def tester_diviser_par_zero():
    try:
        diviser(10, 0)
        assert False, "Une erreur aurait du etre levee"
    except ValueError:
        pass

def executer_tous_les_tests():
    tests = [tester_diviser_cas_normal, tester_diviser_par_zero]
    for test in tests:
        test()
        print(f"{test.__name__} : OK")

executer_tous_les_tests()

Ce code affiche tester_diviser_cas_normal : OK puis tester_diviser_par_zero : OK : executer_tous_les_tests() parcourt une liste de fonctions (vu au premier chapitre, une fonction passée comme valeur), en appelant chacune à son tour.

Une convention très répandue nommé chaque fonction de test avec le préfixe tester_ (ou test_ en anglais), ce qui permet aussi à des outils spécialisés (comme pytest, hors bibliothèque standard) de les repérer et de les exécuter automatiquement, sans liste manuelle comme tests = [...] ci-dessus.

À vous de jouer : écrivez deux fonctions de test avec le préfixe tester_, puis une fonction executer_tous_les_tests() qui les appelle toutes les deux à la suite.

🔒

Continuez ce module

Débloquez les leçons restantes ainsi que la certification finale.

2 500 XOF / 3,81 € / 4,15 $

Débloquez les 87 leçons restantes de ce module

Votre paiement est vérifié avant l'activation de l'accès