【发布时间】:2020-05-28 04:37:36
【问题描述】:
在我的 view.py 中,我对几个连续的页面进行了以下检查:
if(request.META.get('HTTP_REFERER') != request.build_absolute_uri(reverse('page1'))):
return redirect('page1')
这是在每个页面上执行的,检查用户是否从上一个页面重定向,因此(例如),如果用户尝试在地址栏中输入 page4 的 url,测试将失败,他将被发送到第 3 页,则该页测试将失败,他将回退到第 2 页,依此类推。
我这样做是因为我有几个页面链接在一起,用户必须连续访问这些页面。
当我想进行单元测试时,问题就来了。以下测试会抛出错误,因为它无法通过重定向测试,因此无法测试我尝试测试的页面的逻辑:
def test_user_information_updated_on_validation_success(self):
user = User.objects.create_superuser('username')
self.client.force_login(user)
self.client.post(reverse('page_4'), {
'exampleQuestion': 'exampleAnswer'
})
user.refresh_from_db()
self.assertEqual(user.exampleform.somefield, 'exampleAnswer')
如何在单元测试中访问页面,就像它已被重定向一样。
谢谢。
【问题讨论】:
标签: python django tdd django-testing django-tests