Perkhidmatan Mikro dan API REST Spring Boot 4 · Pelajaran

Ujian Lapisan Web dengan MockMvc

Uji pengawal dengan @WebMvcTest.

Pelajaran 2 daripada 413 langkah

Ujian Lapisan Web dengan MockMvc ialah pelajaran Perkhidmatan Mikro dan API REST Spring Boot 4 percuma di CoddyKit. Ini ialah pelajaran 2 daripada 4. Anda boleh membaca keseluruhan pelajaran di bawah secara percuma — kemudian berlatih secara praktikal dalam pelayar menggunakan penyunting kod terbina dalam dan tutor kecerdasan buatan 24/7. Pelajaran ini merupakan sebahagian daripada laluan pembelajaran Perkhidmatan Mikro dan API REST Spring Boot 4, dan kemajuan anda disegerakkan merentas web serta aplikasi CoddyKit. Kursus Perkhidmatan Mikro dan API REST Spring Boot 4 merangkumi sejumlah 4 pelajaran.

Menguji Lapisan Web

Ujian lapisan web mengesahkan pengawal anda — pemetaan permintaan, pengesahan, pensirian dan kod status — tanpa memulakan pelayan penuh.

Spring Boot menyediakan @WebMvcTest dan MockMvc untuk tujuan ini.

@WebMvcTest

@WebMvcTest hanya memuatkan hirisan web: pengawal, penapis dan penukar. Perkhidmatan serta repositori tidak dimuatkan — anda perlu mengolok-olokkannya.

@WebMvcTest(UserController.class)
class UserControllerTest {
    @Autowired
    MockMvc mockMvc;

    @MockBean
    UserService userService;
}

MockMvc.perform

MockMvc mensimulasikan permintaan HTTP terhadap pengawal anda tanpa rangkaian.

mockMvc.perform(get("/users/1"))
    .andExpect(status().isOk());

Mengolok-olokkan Perkhidmatan

Gunakan @MockBean untuk menggantikan perkhidmatan dalam konteks, kemudian tentukan stubnya dengan Mockito.

@Test
void returnsUser() throws Exception {
    when(userService.getById("1"))
        .thenReturn(new User("1", "Alice"));

    mockMvc.perform(get("/users/1"))
        .andExpect(status().isOk());
}

Mengesahkan JSON dengan jsonPath

jsonPath mengesahkan medan dalam isi respons JSON.

mockMvc.perform(get("/users/1"))
    .andExpect(status().isOk())
    .andExpect(jsonPath("$.name").value("Alice"))
    .andExpect(jsonPath("$.id").value("1"));

Menguji Permintaan POST

Hantar isi JSON dengan content dan contentType.

mockMvc.perform(post("/users")
    .contentType(MediaType.APPLICATION_JSON)
    .content("{\"name\":\"Bob\"}"))
    .andExpect(status().isCreated());

Mengesahkan Status Ralat

Sahkan respons 404 atau 400 untuk sumber yang tiada atau input yang tidak sah.

when(userService.getById("99"))
    .thenThrow(new NotFoundException());

mockMvc.perform(get("/users/99"))
    .andExpect(status().isNotFound());

Menguji Pengesahan

Apabila permintaan gagal dalam pengesahan bean, jangkakan 400 Bad Request.

mockMvc.perform(post("/users")
    .contentType(MediaType.APPLICATION_JSON)
    .content("{\"name\":\"\"}"))
    .andExpect(status().isBadRequest());

Menyemak Pengepala

Sahkan pengepala respons seperti Location selepas penciptaan.

mockMvc.perform(post("/users")
    .contentType(MediaType.APPLICATION_JSON)
    .content("{\"name\":\"Bob\"}"))
    .andExpect(header().string("Location",
        "/users/2"));

Parameter Pertanyaan

Tambahkan parameter permintaan dengan param.

mockMvc.perform(get("/users")
    .param("name", "Alice"))
    .andExpect(status().isOk())
    .andExpect(jsonPath("$.length()").value(1));

Mencetak Hasil

Gunakan andDo(print()) untuk merekodkan permintaan dan respons penuh semasa menyahpepijat.

mockMvc.perform(get("/users/1"))
    .andDo(print())
    .andExpect(status().isOk());

Semakan Pantas

Uji pemahaman anda tentang MockMvc.

Imbas Kembali

Anda telah mempelajari cara menguji pengawal secara berasingan:

  • @WebMvcTest hanya memuatkan hirisan web
  • MockMvc.perform mensimulasikan permintaan
  • @MockBean menggantikan perkhidmatan
  • jsonPath, status(), header() untuk pengesahan
Percuma untuk bermula

Pelajari Java dengan tutor kecerdasan buatan — percuma

Tulis dan jalankan kod sebenar dalam pelayar anda, dapatkan bantuan segera daripada tutor kecerdasan buatan yang tersedia 24/7, dan sambung semula dari tempat anda berhenti di web atau dalam aplikasi.

Kursus
24
Pelajaran
93

Soalan Lazim

Adakah pelajaran “Ujian Lapisan Web dengan MockMvc” percuma?

Ya — teks penuh “Ujian Lapisan Web dengan MockMvc” boleh dibaca secara percuma di web ini. Untuk berlatih secara interaktif menggunakan penyunting kod terbina dalam dan tutor kecerdasan buatan 24/7, serta membuka kunci baki kursus Perkhidmatan Mikro dan API REST Spring Boot 4, tingkat taraf kepada CoddyKit PRO. Kursus Perkhidmatan Mikro dan API REST Spring Boot 4 merangkumi sejumlah 4 pelajaran.

Apakah yang akan saya pelajari dalam “Ujian Lapisan Web dengan MockMvc”?

Uji pengawal dengan @WebMvcTest. Anda berlatih Perkhidmatan Mikro dan API REST Spring Boot 4 menggunakan kod praktikal yang dijalankan terus dalam pelayar, manakala tutor kecerdasan buatan 24/7 menjawab soalan anda semasa anda mengikuti pelajaran.

Adakah saya memerlukan pengalaman untuk memulakan Perkhidmatan Mikro dan API REST Spring Boot 4?

Tiada pengalaman terdahulu diperlukan. Pembelajaran Perkhidmatan Mikro dan API REST Spring Boot 4 di CoddyKit disusun untuk pelajar daripada peringkat pemula hingga lanjutan, jadi anda boleh bermula di sini atau dari awal dan belajar mengikut kadar anda sendiri. Ini ialah pelajaran 2 daripada 4.

Berapa lamakah pelajaran “Ujian Lapisan Web dengan MockMvc” diambil?

Kebanyakan pelajaran CoddyKit mengambil masa kira-kira 5–10 minit. Setiap pelajaran ringkas dan interaktif, jadi anda boleh membuat kemajuan secara berterusan dan menyambung tepat dari tempat anda berhenti di web atau aplikasi.

Bolehkah saya menulis dan menjalankan kod dalam pelajaran Perkhidmatan Mikro dan API REST Spring Boot 4 ini?

Ya. Setiap pelajaran Perkhidmatan Mikro dan API REST Spring Boot 4 menyertakan penyunting kod terbina dalam, jadi anda boleh menulis dan menjalankan kod sebenar terus dalam pelayar serta menerima maklum balas kecerdasan buatan serta-merta — tanpa memerlukan persediaan setempat.

Semua pelajaran dalam kursus ini

  1. Pengujian Unit dengan JUnit dan Mockito
  2. Ujian Lapisan Web dengan MockMvc
  3. Ujian Integrasi dengan @SpringBootTest
  4. Kebergantungan Sebenar dengan Testcontainers
← Kembali ke Perkhidmatan Mikro dan API REST Spring Boot 4