模拟HttpServlet响应并将其传递给Servlet ActionContext-并获取响应对象



我有以下代码。

    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);

现在它工作了!

相关内容

  • 没有找到相关文章

最新更新