Use this code for servlet html reponse:
@Override
public void doGet(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
RequestDispatcher dispatcher = request.getRequestDispatcher("/projects.jsp");
dispatcher.forward(request, response);
}
Method work good and return into browser HTML builded by projects.jsp. Now i want test this HTML-reponse, but i can`g get a JSP output.
`
@Test
public void doGetTest() {
HttpServletResponse response = Mockito.mock(HttpServletResponse.class);
HttpServletRequest request = Mockito.mock(HttpServletRequest.class);
RequestDispatcher requestDispatcher = Mockito.mock(RequestDispatcher.class);
HttpSession session = Mockito.mock(HttpSession.class);
StringWriter stringWriter = new StringWriter();
PrintWriter printWriter = new PrintWriter(stringWriter);
try {
when(response.getWriter()).thenReturn(printWriter);
when(request.getSession()).thenReturn(session);
when(request.getRequestDispatcher("/projects.jsp")).thenReturn(requestDispatcher);
} catch (IOException ex) {
fail(ex.getMessage());
}
try {
new Projects().doGet(request, response);
verify(requestDispatcher).forward(request, response);
} catch (ServletException | IOException ex) {
fail(ex.getMessage());
}
printWriter.flush();
System.err.println(stringWriter.getBuffer().toString().trim());
}
`
stringWriter.getBuffer().toString().trim()
here not return HTML-code, just blank string always. I tried ask google and here, but i can`t find work examples for JUnit and Java 8 (found Selenium, for example). This code of test good work without jsp (servlet write response by response.getWriter().println()). Tell please, how can i get JSP HTML response in this case?