7

我想测试表单验证逻辑的 is_valid 部分。在我的测试驱动程序中,我有:

  test_animal = 动物(name="cat", number_paws="4")
  test_animal_form = AnimalForm(instance=test_animal)
  assertEqual(test_animal_form.is_valid(),真)

断言失败,但据我所知,表格中不应该有任何错误。我在表单中看不到任何验证错误。如果加载到表单中的 test_animal 实例应该验证,这是否应该作为测试用例工作?

4

1 回答 1

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.
于 2010-02-04T18:59:54.177 回答