Mockito: захват HttpServletResponse # sendError () - PullRequest
1 голос
/ 11 июня 2010

Можно ли использовать Mockito для захвата того, что было передано методу HttpServletResponse#sendError()?Я не могу понять, как это сделать.

Ответы [ 3 ]

4 голосов
/ 14 июня 2010

Вы должны использовать метод проверки в Mockito для этого. Обычно издеваться над HttpResponse не очень приятно.

mockResponse = mock(HttpSR→);
//…
verify(mockResponse, times(1)).sendError(..);

В качестве аргументов для sendError вы можете затем передать совпадения mockito, которые могут выполнить любую проверку нужного вам аргумента.

2 голосов
/ 22 октября 2014

Я думаю, что автор хотел узнать, как получить аргументы, которые были переданы методу. Вы можете использовать:

// given
HttpServletResponse response = mock(HttpServletResponse.class); 
ArgumentCaptor<Integer> intArg = ArgumentCaptor.forClass(Integer.class);
ArgumentCaptor<String> stringArg = ArgumentCaptor.forClass(String.class);
doNothing().when(response).sendError(intArg.capture(), stringArg.capture());

// when (do your test here)
response.sendError(404, "Not found");

// then (do your assertions here, I just print out the values)
System.out.println(intArg.getValue());
System.err.println(stringArg.getValue());
0 голосов
/ 11 июня 2010

Возможно, вы захотите взглянуть на Шпионы-мокито (глава 13). Для объектов, которые вы не можете высмеивать, вы можете иногда исследовать их внутренние компоненты и таким образом использовать определенные методы.

Если вы можете опубликовать пример кода, я могу взглянуть на него.

...