【发布时间】:2012-02-23 10:45:32
【问题描述】:
我正在尝试为我正在开发的 Django 应用程序编写一些测试,但我还没有决定要为每个视图使用的确切 url。因此,我在测试中使用了命名的 url。
例如,我有一个名为dashboard的url:
c = Client()
resp = c.get(reverse('dashboard'))
此视图应仅对登录用户可用。如果当前用户是匿名的,它应该将他们重定向到登录页面,这也是一个命名的 url。但是,当它这样做时,它会使用一个额外的 GET 参数来跟踪它刚刚来自的 url,结果如下:
/login?next=dashboard
当我尝试测试此重定向时,由于这些附加参数而失败:
# It's expecting '/login' but gets '/login?next=dashboard'
self.assertRedirects(resp, reverse('login'))
显然,如果我将它们硬编码到测试中,它就会起作用:
self.assertRedirects(resp, '/login?next=dashboard')
但是,如果我决定更改仪表板视图的 URL,则必须更新使用它的每个测试。
我可以做些什么来更轻松地处理这些额外的参数吗?
任何建议表示赞赏。
谢谢。
【问题讨论】: