Komplett guide til Spring Boot 4 · leksjon

Test webkontrollere med MockMvc

Skriv målrettede tester for REST-endepunktene dine med MockMvc, som simulerer HTTP-forespørsler uten å starte en ekte server.

Leksjon 4 av 413 trinn

Test webkontrollere med MockMvc er en gratis leksjon i Komplett guide til Spring Boot 4 på CoddyKit. Dette er leksjon 4 av 4. Du kan lese valgfritt 3 leksjoner fra denne læringsstien gratis i sin helhet – deretter låser CoddyKit PRO opp alle leksjoner, samt praktisk øving med en innebygd kodeeditor og en AI-veileder som er tilgjengelig døgnet rundt. Den er en del av læringsløpet i Komplett guide til Spring Boot 4, og fremdriften din synkroniseres mellom nettet og CoddyKit-appen. Kurset i Komplett guide til Spring Boot 4 inneholder totalt 4 leksjoner.

Hvorfor teste kontrollere isolert?

Kontrollertester verifiserer ruting, forespørselsmapping, statuskoder og JSON-serialisering uten kostnaden ved en full server. MockMvc gjør dette raskt og presist.

Introduksjon til @WebMvcTest

Annotasjonen @WebMvcTest laster bare web-laget, kontrollerne Deres og støttebean-ene deres, slik at testutvalget forblir lite og raskt.

@WebMvcTest(UserController.class)
class UserControllerTest {
}

Injisere MockMvc

Inne i en @WebMvcTest tilbyr Spring en automatisk konfigurert MockMvc-instans som De autokobler for å utføre simulerte forespørsler.

@Autowired
MockMvc mockMvc;

Utføre en GET-forespørsel

Bruk det flytende API-et til å utføre en forespørsel og kjede forventninger på svaret.

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

Mocke tjenestelaget

Kontrollere er avhengige av tjenester, så De erstatter dem med mocker ved hjelp av @MockBean. Dermed isoleres kontrolleren fra den faktiske forretningslogikken.

@MockBean
UserService userService;

Stube atferd

Kombiner Mockito-stubbing med forespørselen for å kontrollere hva tjenesten returnerer.

when(userService.find(1L)).thenReturn(new User("Ada"));

Kontrollere JSON-innhold

Bruk jsonPath for å verifisere bestemte felt i svarteksten.

mockMvc.perform(get("/users/1"))
    .andExpect(jsonPath("$.name").value("Ada"));

Teste POST med en body

Send en JSON-nyttelast og kontroller at statusen er «created», slik at De verifiserer at endepunktet godtar og behandler inndata riktig.

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

Verifisere valideringsfeil

Send ugyldige inndata og kontroller 400 Bad Request for å bekrefte at valideringsreglene faktisk utløses.

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

Verifisere interaksjoner

Bruk Mockito sin verify for å bekrefte at kontrolleren faktisk kalte tjenesten det forventede antallet ganger.

verify(userService).find(1L);

Når bør De bruke fullstendige integrasjonstester?

MockMvc-tester av testutvalg er raske, men mocker tjenesten. For ende-til-ende-sikkerhet på tvers av den faktiske stakken bør De supplere dem med fullstendige @SpringBootTest-integrasjonstester.

Rask kontroll

Test forståelsen Deres av testing av kontrollere med MockMvc.

Oppsummering

De brukte @WebMvcTest med MockMvc til å teste endepunkter, mocket tjenester med @MockBean og kontrollerte statuskoder og JSON. Disse testene av testutvalget er en rask første forsvarslinje.

Gratis å komme i gang

Lær deg Java med en AI-veileder – gratis

Skriv og kjør ekte kode i nettleseren, få umiddelbar hjelp fra en AI-veileder som er tilgjengelig døgnet rundt, og fortsett der du slapp – på nettet eller i appen.

Kurs
21
Leksjoner
84

Ofte stilte spørsmål

Er leksjonen «Test webkontrollere med MockMvc» gratis?

Ja – du kan lese valgfritt 3 av leksjonene i læringsstien Komplett guide til Spring Boot 4, inkludert «Test webkontrollere med MockMvc», gratis i sin helhet her på nettet. Deretter låser CoddyKit PRO opp alle leksjoner, samt interaktiv øving med en innebygd kodeeditor og en AI-veileder som er tilgjengelig døgnet rundt. Kurset i Komplett guide til Spring Boot 4 inneholder totalt 4 leksjoner.

Hva lærer jeg i «Test webkontrollere med MockMvc»?

Skriv målrettede tester for REST-endepunktene dine med MockMvc, som simulerer HTTP-forespørsler uten å starte en ekte server. Du øver på Komplett guide til Spring Boot 4 med praktisk kode som du kjører direkte i nettleseren, mens en AI-veileder som er tilgjengelig døgnet rundt, svarer på spørsmålene dine mens du jobber deg gjennom leksjonen.

Trenger jeg erfaring for å begynne med Komplett guide til Spring Boot 4?

Ingen tidligere erfaring er nødvendig. Komplett guide til Spring Boot 4 på CoddyKit er lagt opp for både nybegynnere og viderekomne, så De kan begynne her eller helt fra start og lære i Deres eget tempo. Dette er leksjon 4 av 4.

Hvor lang tid tar leksjonen «Test webkontrollere med MockMvc»?

De fleste CoddyKit-leksjoner tar omtrent 5–10 minutter. Hver leksjon er kort og interaktiv, slik at De gjør jevne fremskritt og kan fortsette akkurat der De slapp – både på nettet og i appen.

Kan jeg skrive og kjøre kode i denne Komplett guide til Spring Boot 4-leksjonen?

Ja. Alle Komplett guide til Spring Boot 4-leksjoner har en innebygd kodeeditor, slik at De kan skrive og kjøre ekte kode direkte i nettleseren og få umiddelbar tilbakemelding fra AI – uten lokal konfigurering.

Alle leksjonene i dette kurset

  1. Enhetstesting med JUnit og Mockito
  2. Integrasjonstesting med Spring Boot
  3. Slicetesting og TestContainers
  4. Test webkontrollere med MockMvc
← Tilbake til Komplett guide til Spring Boot 4