Тестирование защищенной конечной точки REST с помощью Spring MVC Test Framework
Я пытаюсь протестировать безопасный метод REST, используя Spring MVC Test Framework.
val result = this.mockMvc!!
.perform(get("/ping").with(SecurityMockMvcRequestPostProcessors.user("user")))
.andDo(MockMvcResultHandlers.print())
.andReturn()
assertThat(result.response.contentAsString).contains("pong")
Проблема заключается в том, что по этому запросу поддельный сервер отвечает кодом 302, чтобы перенаправить его на защищенный канал. Результат никогда 2xx
код, всегда 302
код. Я хотел бы выполнить это перенаправление или выполнить запрос по безопасному каналу в первый раз.
Как я могу выполнить этот тест, чтобы выполнить тестирование непосредственно на защищенном канале?
1 ответ
Наконец-то я нашел решение. Мне нужно позвонить secure(true)
на высмеянном get("/")
, Меня удивило, что это не в документации, а только в javadocs:
val result = this.mockMvc!!
.perform(get("/ping").secure(true).with(SecurityMockMvcRequestPostProcessors.user("user")))
.andDo(MockMvcResultHandlers.print())
.andReturn()
assertThat(result.response.contentAsString).contains("pong")