2010-02-04 7 views
7

Voglio testare la parte is_valid della logica di convalida di un modulo. Nel mio test driver ho:Come posso verificare la logica di convalida di un modulo in un driver di test dell'unità in Django?

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

L'asserzione fallisce, ma da quello che vedo non ci dovrebbe essere eventuali errori nel modulo. Non vedo errori di convalida nel modulo. Questo dovrebbe funzionare come un caso di test se l'istanza test_animal quando caricata nel modulo dovrebbe validare?

risposta

16

Il motivo per cui vengono visualizzati gli errori di convalida è dovuto al fatto che i dati instance non vengono utilizzati nella convalida, è necessario specificare i dati inviati al modulo.

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

Ci sono shorcuts come 'assertTrue',' assertFalse' –

Problemi correlati