问题描述
我在某处读到:在测试 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 (将#修改为@)