Chciałbym symulować żądania do moich widoków w Django podczas pisania testów. Służy to głównie testowaniu formularzy. Oto fragment prostego żądania testowego:
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
Strona zawsze zwraca odpowiedź 200, niezależnie od tego, czy wystąpił błąd formularza, czy nie. Jak mogę sprawdzić, czy mój formularz nie powiódł się i czy w określonym polu ( soemthing
) wystąpił błąd?
python
django
django-testing
Mridang Agarwalla
źródło
źródło
self.assertEquals(form.errors['recipient'], [u"That recipient isn't valid"])
self.assertEqual(form.is_valid(), True)
można uprościć:self.assertTrue(form.is_valid())
https://docs.djangoproject.com/en/stable/topics/testing/tools/#django.test.SimpleTestCase.assertFormError
Gdzie „formularz” to nazwa zmiennej kontekstowej dla twojego formularza, „coś” to nazwa pola, a „To pole jest wymagane”. to dokładny tekst oczekiwanego błędu weryfikacji.
źródło
self.client.force_login(self.user)
jako pierwszego wiersza w metodzie testowej.Oryginalna odpowiedź z 2011 roku brzmiała
Ale widzę, że teraz (2018) jest cały tłum dostępnych twierdzeń :
Wybieraj.
źródło