Skip to content

M08 · Bab 8± 50 menitDraf AI

Test Integrasi dengan Testcontainers

Tujuan belajar

  • Menjelaskan kenapa test repository sebaiknya memakai PostgreSQL asli, bukan H2
  • Menyiapkan dependency Testcontainers 2.0 beserta paket barunya (org.testcontainers.postgresql)
  • Menulis test dengan @Testcontainers, @Container, dan @ServiceConnection
  • Memilih antara @DataJpaTest dan @SpringBootTest serta memakai @AutoConfigureTestDatabase(replace = Replace.NONE)
  • Mempercepat suite test dengan container static, cache konteks Spring, dan menjalankannya di CI

Prasyarat: Paginasi dan Sorting

Kuis

5 soal · lulus bila minimal 70% benar

1.Migrasi Flyway memakai kolom jsonb dan index parsial WHERE status = 'PENDING'. Test repository memakai H2 in-memory. Apa risiko terbesarnya?
2.Kamu memperbarui proyek ke Testcontainers 2.0 dan kode import org.testcontainers.containers.PostgreSQLContainer; tidak lagi dikenali. Perbaikan yang benar?
3.Test dengan @DataJpaTest dan container PostgreSQL ber-@ServiceConnection ternyata tetap memakai database embedded karena ada H2 di classpath test. Apa yang perlu ditambahkan?
4.Pipeline CI tiba-tiba gagal dengan pesan Could not find a valid Docker environment. Penyebab paling mungkin?
5.Ada 30 class test, masing-masing mendeklarasikan container PostgreSQL di field non-static ber-@Container. Suite test terasa sangat lambat. Kenapa?

Jawab semua soal dulu (0/5)