logo oujood
🔍

Tester les modèles Django

Assurez-vous que votre base de données se comporte exactement comme vous l'avez prévu.

OUJOOD.COM

Tester ses modèles est la base d'une application saine. C'est ici que vous définissez vos règles métier : un prix ne peut pas être négatif, un titre ne doit pas être vide, ou une date de fin doit être après une date de début. Si votre modèle est bancal, tout le reste du site en pâtira. Je vous conseille de commencer vos tests par là.

Que faut-il tester dans un modèle ?

Inutile de tester si Django sait enregistrer une chaîne de caractères, le framework le fait déjà très bien. Concentrez-vous sur ce que vous avez ajouté :

  • La représentation textuelle : Vérifiez que la méthode __str__() renvoie bien ce que vous attendez.
  • Les méthodes personnalisées : Si vous avez créé une fonction pour calculer une remise ou un temps de lecture, testez-la avec plusieurs scénarios.
  • Les contraintes : Vérifiez que vos validations (par exemple unique=True) bloquent bien les doublons.

Exemple pratique de test de modèle

Imaginons un modèle Article. Nous voulons vérifier que le titre s'affiche correctement et que notre méthode de calcul fonctionne. Voici comment structurer votre fichier tests.py :

  📋 Copier le code

from django.test import TestCase
from .models import Article

class ArticleModelTest(TestCase):
    def setUp(self):
        # On crée un objet de test qui sera utilisé dans nos fonctions
        self.article = Article.objects.create(titre="Mon Test", contenu="L'info ici")

    def test_representation_str(self):
        # On vérifie que l'objet affiche bien son titre
        self.assertEqual(str(self.article), "Mon Test")

    def test_contenu_non_vide(self):
        # On s'assure que le contenu a bien été enregistré
        self.assertTrue(len(self.article::contenu) > 0)

L'importance de la méthode setUp

La méthode setUp() est votre meilleure alliée. Elle s'exécute avant chaque fonction de test. Cela vous évite de recréer manuellement vos objets à chaque fois. C'est un gain de lisibilité énorme pour votre code. Ne négligez pas cette étape, elle rend vos tests beaucoup plus simples à maintenir.

Une fois que vos données sont solides, il faut vérifier que vos utilisateurs voient les bonnes informations à l'écran. C'est ce que nous allons voir avec la leçon sur comment tester les vues Django.

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