【问题标题】:How do I properly unit test a Django session?如何正确地对 Django 会话进行单元测试?
【发布时间】:2011-02-02 18:03:26
【问题描述】:

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

  1. Easier manipulation of sessions by test client

  2. test.Client.session.save() raises error for anonymous users

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

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

【问题讨论】:

  • 被接受的票证并不意味着问题已解决,它仅意味着 Django 开发人员已经认识到票证描述了有效的问题或功能请求。只有当它被标记为“已修复”时,才会将解决方案提交到源代码树。
  • 哦,我不知道。考虑到这一点,我会重新阅读这些帖子。谢谢。

标签: python django unit-testing session django-sessions


【解决方案1】:

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

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

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

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

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

【讨论】:

    猜你喜欢
    • 2020-01-06
    • 2010-11-22
    • 2018-02-11
    • 2014-05-21
    • 2010-09-23
    • 2014-01-30
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多