Я не думаю, что это можно сделать.HttpUnit не предоставляет метод setAttribute для WebRequest, что имеет смысл, поскольку атрибуты могут быть установлены только из контейнера.
Однако, что вы можете сделать (и, возможно, даже должны), это проверить оба по отдельности в отдельных тестах- этот фильтр помещает параметры в запрос, и сервлет работает, если параметры установлены правильно.Способ сделать это - создать ложный запрос для сервлета, установить для него атрибуты и запустить для этого обычный модульный тест.Тот же подход применяется к фильтру.
Вот пример работы с фильтром:
@Test
public void testDefaultRequestEncoding() throws ServletException, IOException {
CharacterEncodingFilter filter = new CharacterEncodingFilter();
filter.setEncoding(CONFIGURED_ENCODING_UTF8);
filter.setForceEncoding(ENFORCE_ENCODING_TRUE);
MockHttpServletRequest request = new MockHttpServletRequest();
MockHttpServletResponse response = new MockHttpServletResponse();
FilterChain filterChain = new MockFilterChain();
request.setCharacterEncoding(TEST_ENCODING_ISO_8859_15);
filter.doFilter(request, response, filterChain);
assertEquals(CONFIGURED_ENCODING_UTF8, request.getCharacterEncoding());
assertEquals(CONFIGURED_ENCODING_UTF8, response.getCharacterEncoding());
}
Mock * объекты из Spring.Если в вашей среде их нет, вы можете создать их с помощью некоторой фиктивной библиотеки или использовать те, которые можно увидеть из источников Spring.