在Django测试中检查表单错误

时间:2018-12-11 10:17:32

标签: django testing error-handling field

我想使用assertFormError测试字段错误。我该如何测试?

在forms.py

    password = forms.RegexField(max_length=254,
                                 error_messages={'required': _('This is required.') 
                                                'invalid': _('It is invalid)}
                                )

在tests.py

    form = UserForm(data=data)
    self.assertContains(form['password'].errors, 'It is invalid')

2 个答案:

答案 0 :(得分:0)

这是测试它的一种方法。请注意,您需要调用is_valid函数:

self.assertFalse(form.is_valid())
self.assertEqual(form.errors['password'][0], 'It is invalid')

答案 1 :(得分:0)

首先,您需要调用is_valid方法,然后如果错误列表中包含特定错误,则调用chceck:

self.assertFalse(form.is_valid())
self.assertIn('password', form.errors.keys())
self.assertIn('It is invalid', form.errors['password'])