7

フォームの検証ロジックの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インスタンスを検証する必要がある場合、これはテストケースとして機能する必要がありますか?

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 に答える