2010-02-04 1 views
7

Ich möchte den is_valid Teil der Validierungslogik eines Formulars testen. In meinem Test-Treiber habe ich:Wie kann ich die Validierungslogik eines Formulars in einem Komponententesttreiber in Django testen?

 
    test_animal = Animal(name="cat", number_paws="4") 
    test_animal_form = AnimalForm(instance=test_animal) 
    assertEqual(test_animal_form.is_valid(), True) 

Die Behauptung fehlschlägt, aber von dem, was ich sehe keine Fehler in der Form sein sollte. Ich sehe keine Validierungsfehler im Formular. Sollte dies als Testfall funktionieren, wenn die test_animal-Instanz beim Laden in das Formular validiert werden soll?

Antwort

16

Der Grund, warum Sie die Validierungsfehler sehen, ist, dass instance Daten nicht in der Validierung verwendet werden, müssen Sie die Daten angeben, die an das Formular gesendet werden.

test_animal = Animal(name="cat", number_paws="4") 
test_animal_form = AnimalForm(instance=test_animal) 
assertEqual(test_animal_form.is_valid(), False) # No data has been supplied yet. 
test_animal_form = AnimalForm({'name': "cat", 'number_paws': 4, }, instance=test_animal) 
assertEqual(test_animal_form.is_valid(), True) # Now that you have given it data, it can validate. 
+7

Es gibt Shorcuts wie 'assertTrue',' assertFalse' –

Verwandte Themen