如何模拟 class 将 ServletRequest 转换为 HttpServletRequest?

how to mock the class cast ServletRequest to HttpServletRequest?

这是我的代码,

public void doFilter(ServletRequest req, ServletResponse res, FilterChain filterChain)
        throws IOException, ServletException {
    HttpServletRequest request = (HttpServletRequest) req;
    HttpServletResponse response = (HttpServletResponse) res;
    HttpSession session = request.getSession(false);
}

请求被用来为空。如何模拟这条线?

您应该创建 HttpServletRequestHttpServletResponse 的模拟,如下所示:

@Test
public void testDoFilter() throws Exception {
    HttpServletRequest request = mock(HttpServletRequest.class);
    HttpServletResponse response = mock(HttpServletResponse.class);
    FilterChain filterChain = mock(FilterChain.class);

    Handler handler = new Handler();
    handler.doFilter(request, response, filterChain);

    verify(request).getSession(false);
    // other assertions
}