Ich möchte Anfragen an meine Ansichten in Django simulieren, wenn ich Tests schreibe. Dies dient hauptsächlich zum Testen der Formulare. Hier ist ein Ausschnitt einer einfachen Testanfrage:
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
Die Seite gibt immer eine Antwort von 200 zurück, unabhängig davon, ob ein Formularfehler vorliegt oder nicht. Wie kann ich überprüfen, ob mein Formular fehlgeschlagen ist und ob in dem bestimmten Feld ( soemthing
) ein Fehler aufgetreten ist?
python
django
django-testing
Mridang Agarwalla
quelle
quelle
self.assertEquals(form.errors['recipient'], [u"That recipient isn't valid"])
self.assertEqual(form.is_valid(), True)
könnte vereinfacht werden:self.assertTrue(form.is_valid())
https://docs.djangoproject.com/de/stable/topics/testing/tools/#django.test.SimpleTestCase.assertFormError
Wobei "Formular" der Name der Kontextvariablen für Ihr Formular ist, "etwas" der Feldname und "Dieses Feld ist erforderlich". ist der genaue Text des erwarteten Validierungsfehlers.
quelle
self.client.force_login(self.user)
als erste Zeile in der Testmethode.Die ursprüngliche Antwort von 2011 war
Aber ich sehe jetzt (2018), dass es eine ganze Menge anwendbarer Behauptungen gibt :
Treffen Sie Ihre Wahl.
quelle