TGViewer
Java Portal | Программирование Java Portal | Программирование @java_iibrary · 11.6K subscribers
Post #2156 2.51K
Совет по Spring Boot: если тебе нужны интеграционные тесты для контроллеров Spring MVC, а всё остальное ты хочешь замокать, используй @WebMvcTest — он поднимет только MVC-бины (контроллеры, конфиг MVC, конвертеры, валидацию и т.п.), без полного контекста приложения.

▪️Он грузит только MVC-бины, а не весь application context целиком.

▪️Интеграционные тесты медленнее юнитов, поэтому их стоит ускорять, выкидывая все лишнее, что не нужно конкретно для MVC.

▪️В этом примере мы мокaем бин HelloService и поднимаем только MVC-контекст и сам контроллер:

@WebMvcTest(HelloController.class)
class HelloControllerTest {

@Autowired
private MockMvc mockMvc;

@MockBean
private HelloService helloService; // замокано

@Test
void sayHello_returnsExpectedMessage() throws Exception {
given(helloService.getMessage()).willReturn("Hello!");
mockMvc.perform(get("/api/hello"))
.andExpect(status().isOk())
.andExpect(content().string("Hello!"));
}
}


👉 Java Portal
More from @java_iibrary
  1. Sep 26, 2026Во многих приложениях есть такой эндпоинт. Фронтенд удаляет JWT после того, как пользовате…
  2. Sep 26, 2026Java: используйте Deque вместо Stack для работы по принципу LIFO («последним пришёл — перв…
  3. Sep 25, 2026Каждый Java-разработчик использует HashMap. Но задумывались ли вы… Почему его ёмкость всег…
  4. Sep 25, 2026Бесплатные ресурсы для изучения Java Конспект Effective Java — HugoMatilla/Effective-JAVA-…
  5. Sep 24, 2026Многие разработчики используют Java каждый день. Но мало кто знает, почему он стал одним и…
  6. Sep 24, 2026Java-разработчики, в чём разница между volatile и synchronized? Многие используют их. Но в…
Threads Profile ViewerView any public Threads profile without an account.Open ThreadLook →Writing with AI? Make it sound human.Metric37 rewrites AI drafts so they read naturally. Free AI detector, 1,500 words free.Try Metric37 →