Ok, więc muszę przetestować widok jednostki, bardziej precyzyjny formularz w widoku. Więc tworzę taki test jednostkowy.W jaki sposób testujesz zestawy formularzy w 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.')
Oczywiście ja wrócę błąd
AttributeError: 'ShareholderFormFormSet' object has no attribute 'fields'
względu formset ma formularzy w niej, a nie pola ..... Więc co jest poprawny sposób przetestować formset?
Spójrz na podobne pytanie: http://stackoverflow.com/questions/1630754/django-formset-unit-test. – alecxe
@alecxe To pytanie jest podobne tylko w tym sensie, że dotyczy to również formsetów i testów jednostkowych ... @Viktor A co z testowaniem 'ShareholderForm'? Wygląda na to, że tak czy owak próbujesz zrobić to ze swoimi twierdzeniami ... – Ngenator
Oboje testujesz widok i formę w teście "jednostkowym". Aby przetestować formularz, nie trzeba wykonywać testu POST. Zobacz sekcję "Testowanie formularzy" w [A Guide to Testing in Django # 2] (http://toastdriven.com/blog/2011/apr/17/guide-to-testing-in-django-2/) – gertvdijk