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

Django 测试内置身份验证视图的最佳实践

如何解决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 举报,一经查实,本站将立刻删除。