Java EasyMock处理HttpSession
如何轻松使用HttpSession。我正在做以下工作:Java EasyMock处理HttpSession,java,easymock,httpsession,Java,Easymock,Httpsession,如何轻松使用HttpSession。我正在做以下工作: System.out.println("begin"); HttpServletRequest request = createMock(HttpServletRequest.class); expect(request.getParameter("firstName")).andReturn("o"); expect(request.getAttribute("lastName")).andReturn("
System.out.println("begin");
HttpServletRequest request = createMock(HttpServletRequest.class);
expect(request.getParameter("firstName")).andReturn("o");
expect(request.getAttribute("lastName")).andReturn("g");
request.setAttribute("lastName", "g");
HttpSession session = createMock(HttpSession.class);
expect(session.getAttribute("testAttribute")).andReturn("testValue");
session.setAttribute("testAttribute", "testValue"); //appears to not matter
replay(request);
replay(session);
System.out.println("param: "+request.getParameter("firstName"));
System.out.println("attribute: "+request.getAttribute("lastName"));
System.out.println("before session");
if(session.getAttribute("testAttribute")!=null){
System.out.println("fired session");
System.out.println((String)session.getAttribute("testAttribute"));
}
System.out.println("after session");
System.out.println("end");
以下是我的输出:
开始参数:o
属性:g
会话前
激发会话
任何帮助都将不胜感激!提前谢谢你你的问题措辞很糟糕,你的代码示例与mock通常的使用方式相去甚远。然而,考虑到怀疑的好处,我假设您想知道为什么您的测试没有通过
if
块
这基本上是因为您调用了两次session.getAttribute(“testAttribute”)
,但预期只调用一次
因此,您有以下期望:
expect(session.getAttribute("testAttribute")).andReturn("testValue");
但是,你有这个块:
if(session.getAttribute("testAttribute")!=null){
System.out.println("fired session");
System.out.println((String)session.getAttribute("testAttribute"));
}
所以你需要期待两次电话,因为你打了两次。有很多方法可以做到这一点。以下任何一项都可以:
时间(int)
方法anyTimes()
方法1. expect(session.getAttribute("testAttribute")).andReturn("testValue").times(2);
2. expect(session.getAttribute("testAttribute")).andReturn("testValue").anyTimes();
3. expect(session.getAttribute("testAttribute")).andReturn("testValue");
expect(session.getAttribute("testAttribute")).andReturn("testValue");
道歉的例子-只是想确保设置会话正确。anyTimes()起作用了。最近发布了与HttpSession相关的新问题,并将请求传递给Action方法。不用担心。很乐意帮忙。我叫甘德,看看你的另一个问题是否还没有回答。