@jakayla
В Spring Boot можно использовать фреймворк для тестирования контроллеров Spring MVC, называемый Spring Boot Test. Этот фреймворк позволяет настроить и запустить тесты контроллеров с использованием реализации сервера, например, Tomcat или Jetty, и выпол
@jakayla
Можно настроить тесты контроллеров с использованием класса MockMvc
, который предоставляет удобные методы для выполнения HTTP-запросов к контроллерам и проверки полученных ответов.
Ниже приведен пример теста контроллера в Spring Boot:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 |
import org.junit.jupiter.api.Test; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.boot.test.autoconfigure.web.servlet.WebMvcTest; import org.springframework.http.MediaType; import org.springframework.test.web.servlet.MockMvc; import org.springframework.test.web.servlet.request.MockMvcRequestBuilders; import org.springframework.test.web.servlet.result.MockMvcResultMatchers; @WebMvcTest(YourController.class) public class YourControllerTest { @Autowired private MockMvc mockMvc; @Test public void testGet() throws Exception { mockMvc.perform(MockMvcRequestBuilders.get("/your-endpoint") .contentType(MediaType.APPLICATION_JSON)) .andExpect(MockMvcResultMatchers.status().isOk()) .andExpect(MockMvcResultMatchers.content().json("expected-response-json")); } } |
В этом примере мы используем аннотацию @WebMvcTest
, чтобы настроить тест только для контроллера YourController
. Мы также внедряем MockMvc
для выполнения запросов.
В методе testGet
мы выполняем GET-запрос к /your-endpoint
и ожидаем, что полученный ответ будет иметь код состояния 200 (OK) и содержать JSON-ответ, соответствующий заданному expected-response-json
.
Вы можете использовать другие методы MockMvcRequestBuilders
, чтобы отправлять другие типы запросов (POST, PUT и т. д.) с разными параметрами и заголовками.
Методы MockMvcResultMatchers
позволяют проверять ожидаемые значения, такие как код состояния, содержимое и заголовки ответа.
Это лишь простой пример, и существует множество других возможностей тестирования контроллеров в Spring Boot. Вы можете изучить документацию Spring Boot Test для получения более подробной информации о различных возможностях и настройках для тестирования контроллеров.