我有以下代码。
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())
打印null,而response
不打印null。如何获得响应对象?
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);
现在可以了!