Fala galera, eu fiz os cursos de Servlet's aqui da Alura e vim realizar esse curso de Testes Automatizados. No curso é dito que a prática do TDD é muito importante para quem programa, porém me surgiu uma dúvida em relação a Testes Automatizados e Servlet's. É possível realizar o TDD na construção de aplicações que usam Sevlet's? Se for possível fazer isso, basta seguir a ideia de criar uma classe de Testes JUnit dentro de um método service ou doFilter de um Servlet e um Filter respectivamente e rodar a aplicação como JUnit Test ou eu teria que utilizar um outro tipo de teste sem ser esse do curso? Vou tentar deixar mais claro com um exemplo abaixo: *OBS: Apesar de que no meu Eclipse esse código deu erro de compilação. Se alguém puder ajudar, ficarei agradecido.
public class ControladorFilter implements Filter{
@Override
public void doFilter(ServletRequest request, ServletResponse response, FilterChain chain)
throws IOException, ServletException {
//Classe de Teste JUnit
@Test
public void teste() {
System.out.println("CONTROLADOR FILTER");
HttpServletRequest httpRequest = (HttpServletRequest) request;
HttpServletResponse httpResponse = (HttpServletResponse) response;
String paramAcao = httpRequest.getParameter("acao");
String nomeDaClasse = "br.com.projeto.sistema.acao.".concat(paramAcao);
String nome = null;
try {
@SuppressWarnings("deprecation")
Acao acao = (Acao) Class.forName(nomeDaClasse).newInstance();
nome = acao.executa(httpRequest, httpResponse);
} catch (InstantiationException | IllegalAccessException | ClassNotFoundException e) {
System.out.println("Mensagem de erro: ".concat(e.getMessage()));
e.printStackTrace();
throw new ServletException();
}
String[] tipoEndereco = nome.split(":");
if(tipoEndereco[0].equals("forward")) {
request.getRequestDispatcher("WEB-INF/view/".concat(tipoEndereco[1]))
.forward(request, response);
} else {
httpResponse.sendRedirect("/sistema/entrada?acao=".concat(tipoEndereco[1]));
}
}
}
}