jiy*_*iyi 1 python django django-unittest
我正在从事 Django 2.1 实践项目。我的测试的最后一行一直失败。
如果发生重定向,assertTemplateUsed 检查是否不起作用?
回溯(最近一次调用最后):
文件“test_views.py”,第24行,在test_home_page_not_login_redirect self.assertTemplateUsed(resp,'users/home.html')
文件“testcases.py”,第554行,在assertTemplateUsed self.fail( msg_prefix +“没有用于呈现响应的模板”)
断言错误:没有用于呈现响应的模板
test_views.py
def test_home_page_not_login_redirect(self):
resp = self.client.get('/')
self.assertEqual(resp.status_code, 302)
self.assertRedirects(resp, '/accounts/login/?next=/')
self.assertTemplateUsed(resp, 'users/login.html')
Run Code Online (Sandbox Code Playgroud)
urls.py
url(r'^login/$',
auth_views.LoginView.as_view(
template_name='users/login.html',
redirect_authenticated_user=True),
name='users_login'),
Run Code Online (Sandbox Code Playgroud)
settings.py
LOGOUT_REDIRECT_URL = '/accounts/login/'
Run Code Online (Sandbox Code Playgroud)
由于重新部署是 302 FOUND 重定向,因此没有用于 HTTP 响应的模板!
如果您想实际遵循重定向链,您可以将follow=True参数传递给self.client.get(https://docs.djangoproject.com/en/2.1/topics/testing/tools/#django.test.Client.get)。这样您就可以实际检查使用哪个模板来呈现(重定向的)响应。
| 归档时间: |
|
| 查看次数: |
1343 次 |
| 最近记录: |