我有以下代码。
HttpServletResponse response = mock(HttpServletResponse.class);
System.out.println("Response: " + response); // Prints "Mock for HttpServletResponse, hashCode: 2051435028"
ServletActionContext.setResponse(response);
System.out.println("Get Response: " + ServletActionContext.getResponse()); // Prints null.
设置时ServletActionContext.getResponse())
打印为空,而response
不为空。
如何获取响应对象?
Mockito、Struts2、JUnit
好的。我有个变通办法。为了他人的帮助。。。
我检查了getResponse()
的代码
public static HttpServletResponse getResponse() {
return (HttpServletResponse) ActionContext.getContext().get(HTTP_RESPONSE);
}
所以我已经将一个模拟的context
对象传递给了ServletActionContext
。所以在传递它之前,我是在嘲笑上下文调用。
actionContext = mock(ActionContext.class);
when(actionContext.get(org.apache.struts2.StrutsStatics.HTTP_RESPONSE)).thenReturn(response);
现在它工作了!