3

Django 会话的行为在“标准”视图代码和测试代码之间发生变化,从而不清楚如何为会话编写测试代码。谷歌搜索会产生关于这个问题的两个相关讨论:

  1. 测试客户端更轻松地操作会话

  2. test.Client.session.save() 为匿名用户引发错误

我很困惑,因为两张票都有不同的方法来处理这个问题,而且他们都被接受了。我认为这意味着它们已被修补,并且行为现在有所不同。我也不知道这些补丁属于哪个版本。

如果我在 Django 1.0 中编写单元测试,我将如何设置会话存储以使会话像在浏览器中一样工作?

4

1 回答 1

1

我不太明白你所说的“标准”视图和“测试”代码之间的行为变化是什么意思,也许你应该详细说明一下。

但关于如何测试会话,我确实认为有一些方法。

  1. 您必须了解 django session 的工作原理,阅读您在应用程序中使用的 session 包的单元测试。这是关于了解服务器端的工作原理。
  2. 您可能需要捕获浏览器和服务器之间的一些对话(例如使用 FIREBUG)

所以你的问题看起来像你没有传递你在与服务器交谈时登录回服务器时获得的 session_id。就像把它放进去(POST,GET,COOKIES,我不太记得了)。

这里重要的是了解会话在 HTTP 中是如何工作的,一旦你明白了,你肯定对那里发生的事情有一个清晰的了解,并做出相应的解释。

于 2012-07-02T09:54:51.683 回答