Могу ли я проверить фильтры сервлетов с помощью REST Assured? - PullRequest
0 голосов
/ 09 мая 2019

У меня есть приложение Spring Boot MVC с @WebFilter, которое добавляет пользовательский заголовок к каждому ответу.Он отлично работает, когда я действительно запускаю приложение, но я немного удивлен, что фильтр не работает во время моего теста REST Assured.

В моем тесте нет ничего фантастического;оно в основном уменьшается до

RestAssuredMockMvc.standaloneSetup(new MyController());
boolean headerExists = given().when().get().headers().hasHeaderWithName("my-header");

Ожидается ли это?Должен ли я делать что-то дополнительное для настройки цепочки фильтров?

1 Ответ

1 голос
/ 09 мая 2019

MockMvc - это инфраструктура для тестирования ваших контроллеров, а не полный веб-контейнер.

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

@Autowired
private WebApplicationContext wac;

private MockMvc mockMvc;

@Before
public void setUp() {
   Collection<Filter> filterCollection = wac.getBeansOfType(Filter.class).values();
   Filter[] filters = filterCollection.toArray(new Filter[filterCollection.size()]);
   mockMvc = MockMvcBuilders.webAppContextSetup(wac).addFilters(filters).build();
}
...