如何在Django的单元测试驱动程序中测试表单的验证逻辑?

Mik*_*keN 7 django django-forms django-testing

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

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

断言失败了,但从我看到的情况来看,表格中不应该有任何错误.我没有在表单中看到任何验证错误.如果加载到表单中的test_animal实例应该验证,它是否应该作为测试用例?

Jac*_* M. 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.
Run Code Online (Sandbox Code Playgroud)

  • 有像`assertTrue`,`assertFalse`这样的短信 (8认同)