pytest - bonnes pratiques

pytest est simple à utiliser, mais pour que tes tests restent clairs et utiles à long terme, il est important d’adopter de bonnes pratiques. Voici une liste adaptée pour débiuter.

    5ttr 6ttr

Bonnes pratiques générales

  • Nommer clairement les tests

    • Les fichiers doivent commencer par test_ (ex: test_algo.py).
    • Les fonctions de test aussi (ex: def test_moyenne():).
    • Un bon nom explique ce qui est vérifié (test_palindrome_mot_pair, test_moyenne_vide).
  • Un test = un comportement à vérifier

    • Évite de tout mettre dans une seule fonction.
    • Mieux vaut plusieurs petits tests faciles à lire qu’un énorme test qui fait tout.
  • Tester les cas limites

    • Pas seulement les cas “normaux”.
    • Exemples : liste vide, valeur négative, mot en majuscule, etc.
  • Messages clairs

    • pytest affiche déjà les différences attendu/obtenu.

    • Tu peux ajouter un message en option :

      assert addition(2, 2) == 5, "2+2 devrait être égal à 4"
  • Relancer souvent les tests

    • Après chaque modification importante → éviter les surprises.
    • Dans un vrai projet, on configure même les tests pour qu’ils tournent automatiquement.

Où placer les fonctions de test ?

1. Dans le même fichier que le code

  • Pratique pour les petits exercices ou les cours.

  • Tout est au même endroit, facile à lancer.

  • Exemple :

    def addition(a, b):
        return a + b
    
    def test_addition():
        assert addition(2, 3) == 5

👉 Bien pour apprendre et pour des scripts courts.


2. Dans un fichier séparé

  • Standard dans les vrais projets :

    • mon_code.py → contient les fonctions.
    • test_mon_code.py → contient les tests.
  • Avantages :

    • Le code de production et les tests ne se mélangent pas.

    • Facile à exécuter tous les tests en une commande :

      pytest
  • Exemple :

    projet/
      mon_code.py
      test_mon_code.py
    

👉 À privilégier quand le projet grandit.


En résumé

  • Pour les exercices en classe → mettre les tests dans le même fichier est plus simple.
  • Pour des projets plus gros ou collaboratifs → séparer le code et les tests est une bonne habitude.

Pour aller plus loin