JUnit тест ответа JSP

Используйте этот код для ответа сервлета html:

@Override public void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { RequestDispatcher dispatcher = request.getRequestDispatcher("/projects.jsp"); dispatcher.forward(request, response); }

Метод работает хорошо и возвращается в браузер HTML, созданный projects.jsp. Теперь я хочу протестировать этот HTML-ответ, но я могу получить вывод JSP.

`

@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(). дифферент ()

здесь не вернуть HTML-код, просто пустая строка всегда. Я попытался спросить Google и здесь, но я не могу найти примеры работы для JUnit и Java 8 (нашел Selenium, например). Этот код теста хорошо работает без jsp (ответ сервлета на запись response.getWriter(). Println ()). Скажите, пожалуйста, как я могу получить ответ JSP HTML в этом случае?

0 ответов

Другие вопросы по тегам