代码之家  ›  专栏  ›  技术社区  ›  Andreas Petersson

测试弹簧范围是否激活

  •  3
  • Andreas Petersson  · 技术社区  · 17 年前

    如何测试会话范围在Spring中是否处于活动状态?例如,在启动时,一些类需要一个会话范围的用户对象,然后我返回一个模拟用户对象。

    如何测试会话作用域是否处于活动状态?

    2 回复  |  直到 17 年前
        1
  •  1
  •   MetroidFan2002    17 年前

    正如spring参考手册第3章中所述,课程范围:

    将单个bean定义限定为HTTP会话的生命周期。仅在支持web的Spring应用程序上下文的上下文中有效。

    如果通过支持web的Spring ApplicationContext(最有可能是XMLWebApplicationContext)调用您的代码,那么当不同的用户调用不同的会话范围的bean时,只要正确的Spring配置设置为注入这些会话范围的bean,您的代码就会自动被注入这些会话范围的bean。然后,您的代码可以忽略它们来自何处,并专注于使用会话范围bean中的用户属性等,而不必担心实际注入了什么属性。

    所以,我想真正的答案是,你不能测试这个——但你也不需要测试——如果有人要求你这么做,那么“他们做错了”。

        2
  •  0
  •   Andreas Petersson    16 年前

    诀窍是创建一个工厂,从工厂获得aop作用域代理,并运行任何需要实际对象和作用域的方法。

    然后捕获BeanCreationException以检测非活动范围。