Je voudrais simuler des requêtes à mes vues dans Django lorsque j'écris des tests. Il s'agit principalement de tester les formulaires. Voici un extrait d'une simple demande de test:
from django.tests import TestCase
class MyTests(TestCase):
def test_forms(self):
response = self.client.post("/my/form/", {'something':'something'})
self.assertEqual(response.status_code, 200) # we get our page back with an error
La page renvoie toujours une réponse de 200, qu'il y ait ou non une erreur de formulaire. Comment puis-je vérifier que mon formulaire a échoué et que le champ particulier ( soemthing
) contient une erreur?
python
django
django-testing
Mridang Agarwalla
la source
la source
self.assertEquals(form.errors['recipient'], [u"That recipient isn't valid"])
self.assertEqual(form.is_valid(), True)
pourrait être simplifié:self.assertTrue(form.is_valid())
https://docs.djangoproject.com/en/stable/topics/testing/tools/#django.test.SimpleTestCase.assertFormError
Où «formulaire» est le nom de la variable de contexte de votre formulaire, «quelque chose» est le nom du champ et «Ce champ est obligatoire». est le texte exact de l'erreur de validation attendue.
la source
self.client.force_login(self.user)
comme première ligne dans la méthode de test.La réponse originale de 2011 était
Mais je vois maintenant (2018) qu'il y a toute une foule d'assertions applicables disponibles :
Faites votre choix.
la source