【问题标题】:Django: Get cookie inside test caseDjango:在测试用例中获取cookie
【发布时间】:2012-05-24 13:42:13
【问题描述】:

我有一个使用response.set_cookie 方法设置cookie 的视图。我想测试一下 cookie 是否设置在 TestCase 中。

根据docs,cookie 应该可以在客户端对象中访问,但client.cookies.items 返回一个空列表。 cookie 已在浏览器中正确设置。

有什么想法吗?

编辑:添加测试用例

>>> response = self.client.get(url)
>>> self.client.cookies.items()
[]

最后一条语句返回一个空列表。

【问题讨论】:

  • 看看测试用例会有帮助。
  • 我无法重现您所描述的行为,并通过TestClient 源查看,似乎很清楚 cookie 应该在客户端上可用,并且响应 github.com/django/django/blob/master/django/test/client.py#L411 如果您使用的是会话中间件那么至少你会有一个会话cookie。

标签: django testing cookies testcase


【解决方案1】:

您需要使用响应的客户端实例:

response = self.client.get(url)
response.client.cookies.items()

【讨论】:

  • 为什么这个工作而不是self.client.cokies.items()
  • 我不记得了。根据当前文档,它应该在 1.6+ 版本中与 self.client.cookies 一起使用。我没有检查过旧文档,但可能在 1.3(左右)中,测试客户端没有捕获 cookie,只有响应客户端有。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-09-10
  • 2018-03-12
  • 1970-01-01
  • 2013-08-31
  • 2013-11-17
相关资源
最近更新 更多