MockMvc забезпечує підтримку тестування Spring MVC. Він інкапсулює всі компоненти веб-додатків і робить їх доступними для тестування. Ми ініціалізуємо об’єкт mockMvc у анотованому методі @BeforeEach, щоб нам не потрібно було ініціалізувати його в кожному тесті. 21 січня 2024 р.
MockMvc — це інструмент тестування Spring Boot, який дозволяє тестувати контролери без необхідності запуску HTTP-сервера. У цих тестах контекст програми завантажується, і ви можете протестувати веб-рівень так, ніби я отримую запити від HTTP-сервера, не потребуючи його фактичного запуску.
Рекомендація: коли використовувати який підхід до тестування. Вибір між MockMvc і @SpringBootTest залежить від наших конкретних потреб. Для швидких тестів, зосереджених на рівні MVC, MockMvc — це шлях. Він ідеально підходить для сценаріїв, коли потрібно запустити велику кількість тестів з мінімальними налаштуваннями.
Різниця між MockMvc і Mockito – `Mockito` використовується для створення макетів об’єктів для ізоляції поведінки окремих одиниць (наприклад, класів або методів) у модульних тестах. – Хоча `MockMvc` зазвичай використовується для інтеграційних тестів, `Mockito` використовується для модульних тестів.
MockMvc можна налаштувати одним із двох способів. Один – це вказуйте безпосередньо на контролери, які ви хочете протестувати, і програмно налаштувати інфраструктуру Spring MVC. Другий — вказати на конфігурацію Spring із Spring MVC та інфраструктурою контролера в ній.
Зазвичай WebTestClient використовується для підтвердження відповіді клієнта, включаючи статус HTTP, заголовки та тіло. Це все, що доступно під час виконання живого запиту через HTTP. Проте коли сервер є MockMvc, можливе багато інших тверджень проти відповіді сервера, напр. атрибути моделі, атрибути flash тощо.