如何解决Django 测试内置身份验证视图的最佳实践
我在某处读到:在测试 Web 应用程序时,应该测试自己代码的所有方面,而不是作为 Python 或 Django 的一部分提供的任何库或功能。现在我试图弄清楚这对于 Django 提供的内置身份验证系统意味着什么。更准确地说,我使用内置的身份验证系统,即
urlpatterns = [
path('',include('django.contrib.auth.urls')),]
现在我想写一些测试。
第一个问题:我是否应该编写测试来检查每个 url 是否存在并为每个视图使用正确的模板?即,我应该写
def test_view_url_exists_at_desired_location(self):
response = self.client.get('/login/')
self.assertEqual(response.status_code,200)
def test_view_url_accessible_by_name(self):
response = self.client.get(reverse('login'))
self.assertEqual(response.status_code,200)
def test_view_uses_correct_template(self):
response = self.client.get(reverse('login'))
self.assertTemplateUsed(response,'registration/login.html')
对于所有 8 个视图?我觉得我应该测试一些东西,但同时测试同样的东西 8 次感觉有点多余。
第二个问题:如果我使用内置的用户模型,我想我不必测试视图的功能,例如,我不必测试登录视图实际上登录用户等。但是,我使用自定义用户模型(基于 AbstractBaseUser),其中使用电子邮件而不是用户名进行身份验证。由于我不使用内置用户模型,我应该测试身份验证视图是否仍然有效?如果是这样,我应该具体测试什么?
第三个问题:在我的设置文件中
logoUT_REDIRECT_URL = '/login/'
LOGIN_REDIRECT_URL = '/'
LOGIN_URL = '/login/'
我想我应该为此编写测试吗?
第四个问题:还有什么需要我考虑的吗?
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。