【问题标题】:Grails when use session, how to decide choose request.getSession(true) or request.getSession(false)Grails 使用 session 时,如何决定选择 request.getSession(true) 还是 request.getSession(false)
【发布时间】:2014-10-28 10:39:29
【问题描述】:

在过滤器中,我使用 request.getSession(false) 来获取会话,没关系。但是当我对它进行单元测试时,request.getSession(false)会返回null obj,测试结果失败。如果我想通过测试我应该使用request.getSession(true)。

【问题讨论】:

    标签: unit-testing grails


    【解决方案1】:

    request.getSession(true) 创建一个新会话当且仅当一个不存在。如果一个已经存在,比如在生产环境中,它会使用调用您的代码的 Java EE servlet 容器中可用的那个。

    换句话说,您可以在当前使用 request.getSession(false) 的生产环境中的任何地方使用 request.getSession()(与 getSession(true) 相同)。生产环境不需要getSession(false),getSession(true)会一直返回当前会话,如果存在的话。在测试环境中,您当然会得到一个空白会话,然后您需要填充运行测试所需的任何数据。但它应该在两个地方都做正确的事情。

    请注意,Grails 有自己的会话对象,它封装了 Java EE 会话对象,因此您可能希望使用它来代替...

    【讨论】:

      猜你喜欢
      • 2015-09-07
      • 2012-12-07
      • 2011-08-15
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-06-17
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多