如何检查哪个字段在Django REST Framework中引发了ValidationError

时间:2018-10-15 23:49:24

标签: django-rest-framework tdd

我正在使用self.assertRaisesMessage(rest_framework_exceptions.ValidationError, expected_message)测试我的自定义验证程序。有什么方法可以使用它,或者类似于确认哪个字段引起了验证错误?

用例是我有两个验证器,它们针对不同的字段引发相同的错误,并且由于它们之间的关系(开始日期和结束日期),不可能编写出在引入结束日期和日期之前会失败的测试在引入结束日期后,出于正确的原因也将成功。

1 个答案:

答案 0 :(得分:2)

您可以通过测试整个表单来断言错误吗?喜欢:

class FooSerializer(Serializer):
    start_date = DateField()
    end_date = DateField()

foo = FooSerializer(data={'start_date': '2018-01-01', 'end_date': 'incorrect value'})
self.assertFalse(foo.is_valid())
self.assertNotIn('start_date', foo.errors)
self.assertIn('end_date', foo.errors)