我有一个 spring 服务方法,它获取存储在 session 中的对象(使用 FacesContext),如下所示:
(MyObject)((HttpServletRequest) FacesContext
.getCurrentInstance().getExternalContext().getRequest())
.getSession().getAttribute("myObject");
我想在调用该方法之前将该对象放入单元测试的 session 中。
所以我尝试了这篇文章中的解决方案:
Spring Test session scope bean using Junit
在我的测试方法中,我在调用服务之前将对象放入 session 中,但是在尝试从 session 中获取对象时服务抛出异常,我猜这是因为 facescontext 不可用,你该怎么办认为?
我正在使用Spring、Junit、JSF2,请指教,谢谢。
最佳答案
使用 Spring 3.2,这变得更加容易
@RunWith(SpringJUnit4ClassRunner.class)
@ContextConfiguration(...)
@WebAppConfiguration
public class SessionTest {
@Autowired
MockHttpSession session;
@Test
public void sessionAttributeTest() throws Exception {
MyObject myObject = session.getAttribute("myObject");
...
}
}
关于spring - 如何在单元测试中使用session?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8519497/