logo oujood
🔍

Introduction aux tests avec Django

Sécurisez votre développement en automatisant la vérification de vos fonctionnalités.

OUJOOD.COM

Je vous le dis franchement : tester son application à la main en cliquant partout est une perte de temps monumentale. Dès que vous modifiez une ligne de code, vous risquez de casser quelque chose ailleurs sans vous en rendre compte. Les tests automatisés sont là pour faire ce travail ingrat à votre place, en quelques secondes.

Pourquoi s'embêter à écrire des tests ?

L'idée n'est pas de se rajouter du travail, mais d'en gagner sur le long terme. Un bon test vous permet de dormir tranquille. Si votre code passe les tests, c'est qu'il fonctionne comme prévu. Si vous cassez une fonctionnalité en ajoutant une nouveauté, le test passera au rouge et vous saurez exactement où intervenir avant même que vos utilisateurs ne voient le bug.

La classe TestCase

Django s'appuie sur la bibliothèque standard de Python pour les tests, mais il y ajoute sa propre touche avec la classe TestCase. Son grand avantage est qu'elle crée une base de données de test vierge à chaque lancement. Vos vraies données ne risquent rien, et chaque test repart de zéro pour éviter les interférences.

  📋 Copier le code

from django.test import TestCase

class MonPremierTest(TestCase):
    def test_calcul_simple(self):
        # On vérifie que 1 + 1 font bien 2
        self.assertEqual(1 + 1, 2)

Lancer les tests

Pour exécuter vos vérifications, tout se passe dans le terminal. Django va chercher tous les fichiers qui commencent par test_ dans vos applications et lancer les fonctions qu'ils contiennent. C'est un réflexe que vous devez prendre avant chaque mise en ligne.

  📋 Copier le code

python manage.py test

Si vous voyez un point (.), c'est que le test a réussi. Si vous voyez un F (Failure) ou un E (Error), il y a un problème à régler. Maintenant que vous avez compris le principe, nous allons passer aux choses sérieuses en apprenant à tester les modèles Django.

Par carabde | Mis à jour le 08/05/2026