Skip to content

M05 · Bab 5± 50 menitDraf AI

Mockito & Test Double

Tujuan belajar

  • Membedakan lima jenis test double — dummy, stub, fake, mock, dan spy
  • Menulis unit test dengan @ExtendWith(MockitoExtension.class), @Mock, dan @InjectMocks
  • Mengatur perilaku dengan when(...).thenReturn/thenThrow dan memeriksa interaksi dengan verify, times, never, serta ArgumentCaptor
  • Memakai argument matcher dengan benar dan mengenali gaya BDDMockito
  • Menilai kapan fake buatan sendiri lebih baik daripada mock, dan menghindari over-mocking

Prasyarat: AssertJ & Test-Driven Development

Kuis

5 soal · lulus bila minimal 70% benar

1.Apa yang dicetak System.out.println(catalog.priceOf("KOPI-250")) bila catalog = mock(ProductCatalog.class), priceOf mengembalikan long, dan belum ada stubbing sama sekali?
2.Test memanggil when(gateway.charge("ORD-1", anyLong())).thenReturn(ok). Apa yang terjadi?
3.Test CheckoutService dengan MockitoExtension gagal dengan UnnecessaryStubbingException, padahal semua assertion lulus. Penyebab paling mungkin?
4.Kamu ingin memastikan order yang disimpan ke OrderRepository berstatus PAYMENT_FAILED dan transactionId-nya null. Cara paling tepat?
5.Repository dipakai di 40 test dan tiap test menulis 5–8 baris when(...) untuk mensimulasikan simpan-lalu-cari. Langkah yang paling masuk akal?

Jawab semua soal dulu (0/5)