Comment dois-je écrire des tests pour les Formulaires dans Django?
J'aimerais simuler les demandes de mon point de vue dans Django quand je suis à l'écriture de tests. C'est principalement à tester les formes. Voici un extrait d'un test simple demande:
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 retourne toujours une réponse de 200 si il y a une erreur ou pas. Comment puis-je vérifier que mon Formulaire échoué, et que le domaine particulier (soemthing
) a eu une erreur?
Vous devez vous connecter pour publier un commentaire.
Je pense que si vous voulez juste tester la la forme, alors vous devriez tester la la forme et pas sur le point de vue où le formulaire est rendu. Exemple pour avoir une idée:
self.assertEquals(form.errors['recipient'], [u"That recipient isn't valid"])
self.assertEqual(form.is_valid(), True)
pourrait être simplifiée:self.assertTrue(form.is_valid())
self.assertTrue(form.isVald(), form.errors)
- qui assure que l'échec du test de message comprend les raisons pour lesquelles la forme échoué à valider.https://docs.djangoproject.com/en/stable/topics/testing/tools/#django.test.SimpleTestCase.assertFormError
Où la "forme" est le contexte de la variable nom de votre formulaire, "quelque chose" est le nom du champ, et "Ce champ est obligatoire." est le texte exact de l'erreur de validation.
self.client.force_login(self.user)
en première ligne dans la méthode d'essai.L'original 2011 réponse a été
Mais je vois maintenant (2018) il y a toute une foule de applicable affirme disponible:
Faire votre choix.