如果在 Post 后重定向失败,则会显示有意义的错误消息(测试 Django)
Meaningful error message if Redirect after Post fails (Testing Django)
成功后 POST 应该发生重定向 (PRG Pattern)
response = admin_client.post(url, data)
assert response.status_code == 302
如果此测试失败,我会收到一条毫无意义的错误消息。
AssertionError assert 200 == 302
由于状态是 200
,我知道我发送的表单数据没有通过验证。
有没有django-way把django表单验证的错误信息放到异常中?
示例:我希望看到类似“需要 foo”的内容(如果“foo”不在 data
中)
Django 的自定义 TestCase class 是 unittest.TestCase
的子 class 并且它的所有断言函数都有一个 msg
参数,传递时使用该参数作为断言失败时的错误消息。此外,由于您希望显示表单错误,因此您可以从上下文中获取表单实例并获取其错误。这样的事情应该有效:
assertEqual(response.status_code, 302, str(response.context['form'].errors))
Note 表单还有 form.errors.as_data()
,它将显示在表单验证期间引发的异常,或者 form.errors.as_json()
您可能会发现其中的任何一个更有用。参考Form.errors
成功后 POST 应该发生重定向 (PRG Pattern)
response = admin_client.post(url, data)
assert response.status_code == 302
如果此测试失败,我会收到一条毫无意义的错误消息。
AssertionError assert 200 == 302
由于状态是 200
,我知道我发送的表单数据没有通过验证。
有没有django-way把django表单验证的错误信息放到异常中?
示例:我希望看到类似“需要 foo”的内容(如果“foo”不在 data
中)
Django 的自定义 TestCase class 是 unittest.TestCase
的子 class 并且它的所有断言函数都有一个 msg
参数,传递时使用该参数作为断言失败时的错误消息。此外,由于您希望显示表单错误,因此您可以从上下文中获取表单实例并获取其错误。这样的事情应该有效:
assertEqual(response.status_code, 302, str(response.context['form'].errors))
Note 表单还有 form.errors.as_data()
,它将显示在表单验证期间引发的异常,或者 form.errors.as_json()
您可能会发现其中的任何一个更有用。参考Form.errors