【问题标题】:EasyMock - HttpSession Setting session - method pass via requestEasyMock - HttpSession 设置会话 - 方法通过请求传递
【发布时间】:2013-11-22 05:12:29
【问题描述】:

我想知道将请求传递给方法并拉取 HttpSession?

从 JUnit 开始:

@Test
public void testSessionPass(){
    HttpServletRequest request = createMock(HttpServletRequest.class);
    HttpSession session = createMock(HttpSession.class);
    expect(session.getAttribute("testAttribute")).andReturn("testValue").anyTimes();
    replay(request);
    replay(session);

    CAction cAction = new CAction();
    cAction.test(request);


}

在 CAction 中:

 public void test (HttpServletRequest request){
        HttpSession session = request.getSession();
        if(session.getAttribute("testAttribute")!=null){
             System.out.println((String)session.getAttribute("testAttribute"));
        }
 }

更新:

为什么我在 HttpSession session = request.getSession(); 行从传递的请求值中丢失了会话; ??

【问题讨论】:

  • 你有什么问题?
  • 当我传入请求参数时,我丢失了 testAttribute 的会话值。它实际上是死在 HttpSession session = request.getSession();行。

标签: junit easymock httpsession


【解决方案1】:

你不是在嘲笑对getSession()的调用

在您致电replay()之前添加此行

expect(request.getSession()).andReturn(session);

【讨论】:

  • 非常感谢您这样做!你是最棒的!
猜你喜欢
  • 1970-01-01
  • 2013-06-20
  • 1970-01-01
  • 2018-07-11
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-08-11
  • 2020-05-08
相关资源
最近更新 更多