Skip to content

M07 · Bab 8± 50 menitDraf AI

Testing REST API

Tujuan belajar

  • Menulis test slice @WebMvcTest dengan service di-mock lewat @MockitoBean
  • Menguji status, header, dan body JSON dengan MockMvcTester (AssertJ) maupun MockMvc klasik
  • Menguji error validasi dan body ProblemDetail sebagai bagian dari kontrak API
  • Memakai RestTestClient dari Spring Framework 7, baik di atas MockMvc maupun server sungguhan
  • Memilih antara test slice dan @SpringBootTest full context berdasarkan kecepatan dan cakupan

Prasyarat: Error Handling dengan ProblemDetail

Kuis

5 soal · lulus bila minimal 70% benar

1.Test @WebMvcTest(ProductController.class) dijalankan, padahal ProductController butuh ProductService di constructor dan test tidak punya @MockitoBean ProductService. Apa yang terjadi?
2.Setelah upgrade ke Spring Boot 4, test berisi @MockBean ProductService productService; tidak bisa dikompilasi. Perbaikan yang tepat?
3.Test validasi mengirim body dengan name kosong lalu memanggil verify(productService, never()).create(any()), dan test lulus. Kenapa create tidak pernah dipanggil?
4.Kamu ingin satu test yang membuktikan seluruh aplikasi bekerja lewat HTTP sungguhan — filter, controller, service asli, dan serialisasi JSON. Pilihan paling tepat?
5.Assertion bodyJson().extractingPath("$.errors[*].field").asArray().containsExactly("name", "price") kadang gagal dengan urutan [price, name]. Perbaikan yang paling tepat?

Jawab semua soal dulu (0/5)