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