【发布时间】:2017-10-19 22:56:38
【问题描述】:
假设我有一个定义为:
class NumbersABForm(forms.Form):
a = forms.FloatField(required=False)
b = forms.FloatField(required=False)
def clean(self):
if self.cleaned_data['a'] < self.cleaned_data['b']:
raise ValueError('a < b')
我想为这个表单定义单元测试用例如下:
class NumbersABFormTest(TestCase):
def test_invalid(self):
try:
form = NumbersABForm({
'a': 10.0,
'b': 5.0
})
self.assertFalse(form.is_valid())
except ValueError:
self.assertEqual(form.errors, {'a < b'})
抛出异常但“form.errors”为空。我不明白这是如何工作的。此外,在调用 form.is_valid() 之前返回 False 之后,再次调用它会返回 True。我不知道这怎么可能。我有什么遗漏吗?
【问题讨论】:
标签: django unit-testing django-forms