2010-02-04 10 views
7

Bir formun doğrulama mantığının is_valid bölümünü test etmek istiyorum.Bir formun doğrulama mantığını Django'daki bir birim test sürücüsünde nasıl test edebilirim?

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

onaylama işlemi başarısız olur ama ya ben formda herhangi bir hata olmamalı bkz: benim test sürücüsü olarak ben var. Formda herhangi bir doğrulama hatası göremiyorum. Formda yüklendiğinde test_animal örneğinin geçerli olması durumunda bu bir test durumu olarak çalışır mı?

cevap

16

Doğrulama hatalarını görmenizin nedeni, doğrulamada instance verisinin kullanılmaması nedeniyle, formda gönderilen verileri belirtmeniz gerekir.

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

assertTrue', 'assertFalse'' gibi shorcuts vardır –