2010-02-04 58 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

您看到验证错误的原因是因为instance数据未用于验证,您必须指定要发送到表单的数据。

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'这样的快捷方式 – 2014-03-18 13:15:10