Ok, also muss ich Unit-Test eine Ansicht, genauere Form in einer Ansicht. Also erstelle ich einen solchen Komponententest.Wie testen Sie Formsets in Django?
class ViewTest(TestCase):
fixtures = ['fixture.json']
def setUp(self):
self.client = Client()
def test_company_create(self):
post_data = {
'form-0-user': '',
'form-0-share': '',
'form-TOTAL_FORMS': 1,
'form-INITIAL_FORMS': 0,
'form-MAX_NUM_FORMS': 10
}
resp = self.client.post('/company/create/', post_data)
self.assertFormError (resp, 'shareholder_formset', 'share', 'This field is required.')
self.assertFormError (resp, 'shareholder_formset', 'user', 'This field is required.')
Ofcourse bekomme ich wieder ein Fehler
AttributeError: 'ShareholderFormFormSet' object has no attribute 'fields'
Da formset Formen in sich hat, nicht Felder ..... Also, was ist der richtige Weg, um einen Formularsatz zu testen?
Werfen Sie einen Blick auf die ähnliche Frage: http://stackoverflow.com/questions/1630754/django-formset-unit-test. – alecxe
@alecxe Diese Frage ist nur in dem Sinne ähnlich, dass es auch um Formsets und Unit-Testing geht ... @Viktor Wie wäre es damit, nur das 'ShareholderForm' zu testen? Es sieht so aus, als ob Sie das mit Ihren Behauptungen versuchen würden ... – Ngenator
Sie testen beide die Ansicht und das Formular in diesem "Unit" Test. Zum Testen eines Formulars ist kein POST erforderlich. Siehe den Abschnitt "Testformulare" in [Eine Anleitung zum Testen in Django # 2] (http://toastdriven.com/blog/2011/apr/17/guide-to-testing-in-django-2/) – gertvdijk