19
Июн
2017

Как правильно передать JSON в метод пост для тестирования?

Совсем недавно начал использовать unit тестирование. С методами GET и POST, которым в явном виде передаю какие параметры вопросов уже не возникает.

@Test
public void GetEmployeesServletTest() throws Exception {
        HttpServletRequest request = mock(HttpServletRequest.class);
        HttpServletResponse response = mock(HttpServletResponse.class);
  when(request.getParameter("jsonData")).thenReturn(jsonData);
        when(request.getParameter("login")).thenReturn(login);
        PrintWriter writer = new PrintWriter("junit_test_POST_somefile.txt");
        when(response.getWriter()).thenReturn(writer);
        new GetEmployees().doPost(request, response);
}

Нj теперь возникла необходимость проверить работу метода POST сервлета, которому я отдаю JSON таким способом

$.ajax({
            type: 'POST',
            url: 'employees',
            data: JSON.stringify(json_result),
            success: function(data) {
                console.log( "Данные зафиксированы успешно.");
                },
            error: function(data) {
                console.log( "Отправка данных завершилась завершилась ошибкой: ");
        },
            contentType: "application/json",
            dataType: 'json'
        });

сам метод обработки POST пока выглядит так

protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        request.setCharacterEncoding("UTF-8");
        response.setCharacterEncoding("UTF-8");
        response.setContentType("application/json; charset=utf-8");
        StringBuilder sb = new StringBuilder();
        BufferedReader br = request.getReader();
        String str;
        while( (str = br.readLine()) != null ){
            sb.append(str);
        }
        String output = sb.toString().replace("[", "").replace("]", "");
        try {
            JSONObject jObj = new JSONObject(output);
        } catch (JSONException e) {
            e.printStackTrace();
        }
        System.out.println(output);
}

Как правильно составить unit тест, чтобы проверить приемку JSON в методе POST сервлета?

Источник: https://ru.stackoverflow.com/questions/681106/%D0%9A%D0%B0%D0%BA-%D0%BF%D1%80%D0%B0%D0%B2%D0%B8%D0%BB%D1%8C%D0%BD%D0%BE-%D0%BF%D0%B5%D1%80%D0%B5%D0%B4%D0%B0%D1%82%D1%8C-json-%D0%B2-%D0%BC%D0%B5%D1%82%D0%BE%D0%B4-%D0%BF%D0%BE%D1%81%D1%82-%D0%B4%D0%BB%D1%8F-%D1%82%D0%B5%D1%81%D1%82%D0%B8%D1%80%D0%BE%D0%B2%D0%B0%D0%BD%D0%B8%D1%8F

Тебе может это понравится...

Добавить комментарий