微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

如果 Post 后重定向失败,则出现有意义的错误消息测试 Django

如何解决如果 Post 后重定向失败,则出现有意义的错误消息测试 Django

POST 成功后会发生重定向 (PRG Pattern)

    response = admin_client.post(url,data)
    assert response.status_code == 302

如果此测试失败,我会收到一条毫无意义的错误消息。

AssertionError assert 200 == 302

由于状态为 200,我知道我发送的表单数据未通过验证。

是否有django方式将django表单验证的错误信息放入异常中?

示例:我希望看到类似“foo is required”的内容(如果“foo”不在 data 中)

解决方法

Django 的自定义 TestCase 类是 unittest.TestCase 的子类,并且它的所有断言函数都有一个 msg 参数,该参数在传递时用作断言失败时的错误消息。此外,由于您希望显示表单错误,您可以从上下文中获取表单实例并获取其错误。这样的事情应该可以工作:

assertEqual(response.status_code,302,str(response.context['form'].errors))

Note 表单还有 form.errors.as_data() 将显示表单验证期间引发的异常,或者 form.errors.as_json() 您可能会发现其中任何一个更有用。参考Form.errors

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。