2010-02-04 1 views
7

Я хочу проверить часть is_valid логики проверки формы. На мой тест-пилота у меня есть:Как проверить логику проверки формы в единичном тестовом драйвере в Django?

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

утверждение не удается, но с тем, что я вижу там не должно быть никаких ошибок в форме. Я не вижу никаких ошибок проверки в форме. Должно ли это работать в качестве тестового примера, если экземпляр test_animal при загрузке в форму должен быть проверен?

ответ

16

Причина, по которой вы видите ошибки проверки, заключается в том, что данные не используются в валидации, вы должны указать данные, отправляемые в форму.

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

Есть такие shorcuts, как 'assertTrue',' assertFalse' –