2015-12-12 2 views
0

я пытаюсь проверить этот метод:Как я могу проверить метод doFilter?

public void doFilter(final ServletRequest request, final ServletResponse response, 
    final FilterChain chain) throws IOException, ServletException { 

    final HttpServletRequest httpRequest = (HttpServletRequest) request; 
    final HttpServletResponse httpResponse = (HttpServletResponse) response; 

    if (httpRequest.getSession(true).getAttribute("connected") == null) { 
     httpResponse.sendRedirect(request.getServletContext().getContextPath() + "/"); 
    } else { 
     chain.doFilter(request, response); 
    } 
} 

Вот мой тест:

@Test 
public void testDoFilter() throws IOException, ServletException { 

    MockServletContext servletContext = new MockServletContext(); 
    MockHttpServletRequest request = new MockHttpServletRequest(servletContext); 
    MockHttpServletResponse response = new MockHttpServletResponse(); 
    MockHttpSession session = new MockHttpSession(); 
    FilterChain chain = Mockito.mock(FilterChain.class); 
    String url = "/private/"; 
    request.setContextPath("/private/"); 

    UserFilter userfilter = new UserFilter(); 
    userfilter.doFilter(request, response, chain); 
    Mockito.verify(chain, Mockito.times(0)).doFilter(request, response); 
    request.setSession(session); 
    request.getSession().setAttribute("connected", "toto"); 
    Mockito.verify(chain, Mockito.times(1)).doFilter(request, response); 
} 

но последний Mockito.verify не работают. Я также не понимаю, когда я

request.getAttribute("connected") 

я получить "toto" но null когда я

request.getSession(true).getAttribute("connected"). 

Можете ли вы объяснить и помочь мне, пожалуйста? Благодаря

ответ

0

Последнее Mockito.verify(chain, Mockito.times(1)).doFilter(request, response); терпит неудачу, потому что, сессия запрос содержит ключ/значение «Connected», так doFilter не звонил.

насчет request.getAttribute("connected") против request.getSession(true).getAttribute("connected"), я получил null для первого и toto для второго.

Смежные вопросы