Servlet com EasyMocks

0 respostas
B

[b]Fala galera,

Seguinte to querendo usar EasyMocks para testar meu servlet.

Enviar paramentros para o servlet e testar a resposta do getRequestDispatcher eu consigo na boa como mostrado no código abaixo.

Agora eu não consigo fazer teste com sessões e request.setAttribute("","") assim como eu fiz para o retorno esperado do getRequestDispatcher.

Como eu verifico o retorno de session.setAttribute e request.setAttribute("","") enviados por um serlvet?[/b]

Classe de teste.

Metodo da Classe de teste

public void testLoginComSucesso() throws Exception {

HttpServletRequest requestMock = createMock(HttpServletRequest.class);

expect(requestMock.getParameter(login)).andReturn(joão);

expect(requestMock.getParameter(senha)).andReturn(123456);

expect(requestMock.getRequestDispatcher(ctrlprincipal)).andReturn(TestaRetornoRequestDispatcher());

replay(requestMock);
HttpServletResponse responseMock = createMock(HttpServletResponse.class);
    replay(responseMock);


    LoginServlet loginServlet = new LoginServlet();
    loginServlet.doGet(requestMock, responseMock);
}

private RequestDispatcher TestaRetornoRequestDispatcher() {
    RequestDispatcher dispatcherMock = createNiceMock(RequestDispatcher.class);
    replay(dispatcherMock);
    return dispatcherMock;
}

}

Servlet

public class LoginServlet extends HttpServlet {

protected void doGet(HttpServletRequest request, HttpServletResponse response)
        throws ServletException, IOException {
    
    String url = "";
    if ("joão".equals(request.getParameter("login")) && "123456".equals(request.getParameter("senha"))) {  
    url = "ctrlprincipal";  
    } else {  
    url = "login.jsp";
    }  
    request.getRequestDispatcher(url).forward(request, response);  
}

}

Valeu galera.

Criado 8 de dezembro de 2008
Respostas 0
Participantes 1