Ujian Lapisan Web dengan MockMvc
Uji pengawal dengan @WebMvcTest.
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:
@WebMvcTesthanya memuatkan hirisan webMockMvc.performmensimulasikan permintaan@MockBeanmenggantikan perkhidmatanjsonPath,status(),header()untuk pengesahan
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
- Pengujian Unit dengan JUnit dan Mockito
- Ujian Lapisan Web dengan MockMvc
- Ujian Integrasi dengan @SpringBootTest
- Kebergantungan Sebenar dengan Testcontainers