10-modul · 8-dars: Mockito · Integration Testing

Daraja: Ilg'or

Mockito · Integration Testing. Advanced backend bo‘yicha nazariya, amaliy namuna va mustaqil mashq.

Tushuntirish

## Dars maqsadi Mockito · Integration Testing tushunchalarini farqlash, nima uchun kerakligini izohlash va kichik misolda qo‘llash.

## Nazariya Mockito mock obyekt yaratish, javobni stub qilish va chaqiruvni verify qilish uchun ishlatiladi. Mock default qiymat qaytaradi, spy esa odatda haqiqiy obyekt metodini chaqiradi; noto'g'ri spy stubbing real tashqi amalga olib kelishi mumkin. Unit testda constructor orqali dependency uzatish testni sodda qiladi. @SpringBootTest application context bilan keng integration test beradi; real HTTP server kerak bo'lsa webEnvironmentni tanlang. @WebMvcTest MVC slice va controller contractini, @DataJpaTest JPA mapping/repositoryni tekshiradi. Annotation importlari Boot major versiyasiga bog'liq. DB testda H2 qulay bo'lishi mumkin, ammo PostgreSQL JSONB va SQL xatti-harakatlarini aynan isbotlamaydi. Testcontainers bilan productionga yaqin disposable DB ko'tarish yoki ajratilgan test bazasi ishlatish mumkin; hech qachon prod connectionni testga bermang. Testlar bir-biriga qaram bo'lmasin, random ID va rollback/cleanup izchil bo'lsin. Transactional test ko'p async yoki alohida connectiondagi amallarni avtomatik rollback qilmaydi. Mock security chetlab o'tgan testga qo'shimcha real filter-chain test ham kerak.

## Manbalar [Moduldagi savollar yo‘nalishi](https://github.com/jlkesh/pdp_online_java_lessons/blob/main/interviewquestions/10-module%28Spring%20Boot%20Part%20%7C%7C%29.md) [Rasmiy qo‘llanma](https://docs.spring.io/spring-boot/reference/)

Kod quyida o‘quv namunasi sifatida berilgan. To‘liq ilova uchun import, dependency va konfiguratsiya kerak bo‘lishi mumkin. SQLni faqat ajratilgan test bazasida bajaring.

Kod misoli

var list = org.mockito.Mockito.mock(java.util.List.class);
org.mockito.Mockito.when(list.size()).thenReturn(3);
org.junit.jupiter.api.Assertions.assertEquals(3, list.size());
org.mockito.Mockito.verify(list).size();

Keng tarqalgan xatolar

Mashqlar

Teglar: nazariya, modul-10, pdp

Interaktiv ko'rinish (viktorina, izohlar, tarix)