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 :
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