/
on-line-javalex
/
HW_NoSQL_JavaData
Обзор
Документация
Войти
/
on-line-javalex
/
HW_NoSQL_JavaData
Код
Запросы
0
Задачи
Вики
Пакеты
0
Релизы
0
CI/CD
Аналитика
Безопасность
master
test/java/Mommy/advice/GlobalExceptionHandlerTest.java
51 строка
2 KB
on-line-javalex
create: GlobalExceptionHandlerTest.java, UserControllerTest.java, UserMapperTest.java, MommyApplicationTest.java, UserServiceTest.java
12 май 2026, 13:59
Верифицирован
12 май 2026, 13:59
311e66f
Код
Авторство
О чём код?
package Mommy.advice; import Mommy.controller.UserController; import Mommy.service.UserService; 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.boot.test.mock.mockito.MockBean; import org.springframework.http.MediaType; import org.springframework.test.web.servlet.MockMvc; import static org.mockito.ArgumentMatchers.anyString; import static org.mockito.Mockito.when; import static org.springframework.test.web.servlet.request.MockMvcRequestBuilders.get; import static org.springframework.test.web.servlet.request.MockMvcRequestBuilders.post; import static org.springframework.test.web.servlet.result.MockMvcResultMatchers.*; @WebMvcTest(UserController.class) class GlobalExceptionHandlerTest { @Autowired private MockMvc mockMvc; @SuppressWarnings("deprecation") // убирает предупреждение в IDE @MockBean private UserService userService; @Test void whenUserNotFoundThen404() throws Exception { // Сервис выбрасывает исключение при запросе любого ID when(userService.findById(anyString())) .thenThrow(new RuntimeException("User not found")); mockMvc.perform(get("/api/users/123")) .andExpect(status().isNotFound()) .andExpect(jsonPath("$.error").value("User not found")); } @Test void whenValidationFailsThen400() throws Exception { String invalidJson = "{\"name\":\"\",\"email\":\"bad-email\",\"age\":-5}"; mockMvc.perform(post("/api/users") .contentType(MediaType.APPLICATION_JSON) .content(invalidJson)) .andExpect(status().isBadRequest()) .andExpect(jsonPath("$.name").exists()) .andExpect(jsonPath("$.email").exists()) .andExpect(jsonPath("$.age").exists()); } }