Spring Boot 4 -mikropalvelut ja REST-sovellusliittymät · Oppitunti

Integraatiotestaus @SpringBootTest-annotaatiolla

Testatkaa koko sovelluskontekstia.

Oppitunti 3/413 vaihetta

Integraatiotestaus @SpringBootTest-annotaatiolla on ilmainen Spring Boot 4 -mikropalvelut ja REST-sovellusliittymät-oppitunti CoddyKitissä. Tämä on oppitunti 3/4. Voit lukea koko oppitunnin alta ilmaiseksi ja harjoitella sen jälkeen käytännössä selaimessa sisäänrakennetulla koodieditorilla ja ympäri vuorokauden käytettävissä olevan tekoälytuutorin avulla. Oppitunti kuuluu Spring Boot 4 -mikropalvelut ja REST-sovellusliittymät-oppimispolkuun, ja edistymisesi synkronoituu verkon ja CoddyKit-sovelluksen välillä. Spring Boot 4 -mikropalvelut ja REST-sovellusliittymät-kurssilla on yhteensä 4 oppituntia.

Mikä on integraatiotesti

Integraatiotesti testaa useita kerroksia yhdessä — ohjainta, palvelua ja repositoriota — käyttämällä todellista Spring-kontekstia.

Se löytää kytkentä- ja määritysongelmia, joita yksikkötestit eivät havaitse.

@SpringBootTest

@SpringBootTest käynnistää koko sovelluskontekstin ja lataa kaikki beanit.

@SpringBootTest
class ApplicationIntegrationTest {
    @Autowired
    UserService userService;

    @Test
    void contextLoads() {
        assertThat(userService).isNotNull();
    }
}

WebEnvironment-tilat

Hallitse todellisen palvelimen käynnistymistä webEnvironment-attribuutilla.

  • MOCK (oletus) — simuloitu servlet-ympäristö
  • RANDOM_PORT — todellinen palvelin satunnaisessa portissa
@SpringBootTest(
    webEnvironment = WebEnvironment.RANDOM_PORT)
class ApiTest { }

Testaaminen TestRestTemplatella

Kun käytössä on todellinen portti, voitte tehdä oikeita HTTP-kutsuja käyttämällä TestRestTemplate-luokkaa.

@Autowired
TestRestTemplate restTemplate;

@Test
void getsUser() {
    ResponseEntity<User> response =
        restTemplate.getForEntity("/users/1", User.class);
    assertThat(response.getStatusCode())
        .isEqualTo(HttpStatus.OK);
}

WebTestClient

WebTestClient on sujuva asiakas, joka toimii sekä MVC- että WebFlux-sovelluksissa.

@Autowired
WebTestClient webTestClient;

@Test
void getsUser() {
    webTestClient.get().uri("/users/1")
        .exchange()
        .expectStatus().isOk()
        .expectBody()
        .jsonPath("$.name").isEqualTo("Alice");
}

Testitietokannan käyttäminen

Spring Boot voi oletusarvoisesti korvata tietolähteen muistinsisäisellä H2-tietokannalla testejä varten.

@SpringBootTest
@AutoConfigureTestDatabase
class RepositoryIntegrationTest {
    @Autowired UserRepository repository;
}

Testiominaisuudet

Ohita testien määritykset käyttämällä @TestPropertySource-annotaatiota tai application-test.properties-profiilia.

@SpringBootTest
@TestPropertySource(properties = {
    "feature.enabled=false"
})
class FeatureTest { }

Profiilien aktivointi

Käytä @ActiveProfiles-annotaatiota tietyn Spring-profiilin kanssa suorittamiseen.

@SpringBootTest
@ActiveProfiles("test")
class ServiceTest { }

Transaktion palauttaminen

Merkitse testit @Transactional-annotaatiolla, jotta kunkin testin tietokantamuutokset perutaan automaattisesti ja testit pysyvät erillään.

@SpringBootTest
@Transactional
class UserPersistenceTest {
    @Test
    void savesAndRollsBack() {
        repository.save(new User("Alice"));
    }
}

Osittaminen nopeuden vuoksi

Kokonainen @SpringBootTest on hidas. Suosi osittaisia testejä, kuten @DataJpaTest- tai @WebMvcTest-testejä, kun tarvitset vain yhden kerroksen.

@DataJpaTest

@DataJpaTest lataa vain JPA-komponentit ja upotetun tietokannan — se sopii erinomaisesti repositorioiden testaamiseen.

@DataJpaTest
class UserRepositoryTest {
    @Autowired UserRepository repository;

    @Test
    void findsByName() {
        repository.save(new User("Alice"));
        assertThat(repository.findByName("Alice"))
            .hasSize(1);
    }
}

Pikatarkistus

Testatkaa, miten hyvin ymmärrätte integraatiotestauksen.

Kertaus

Opitte kirjoittamaan integraatiotestejä:

  • @SpringBootTest lataa koko kontekstin
  • RANDOM_PORT yhdessä TestRestTemplate- tai WebTestClient-luokan kanssa mahdollistaa oikean HTTP:n
  • @Transactional peruu tietokantamuutokset
  • Käyttäkää osittaisia testejä nopeuden parantamiseksi
Aloita maksutta

Opi Java tekoälytuutorin avulla — ilmaiseksi

Kirjoita ja suorita oikeaa koodia selaimessa, saa välitöntä apua tekoälytuutorilta ympäri vuorokauden ja jatka siitä, mihin jäit, verkossa tai sovelluksessa.

Kurssit
24
Oppitunnit
93

Usein kysytyt kysymykset

Onko oppitunti ”Integraatiotestaus @SpringBootTest-annotaatiolla” ilmainen?

Kyllä – oppitunnin ”Integraatiotestaus @SpringBootTest-annotaatiolla” koko tekstin voi lukea täällä verkossa ilmaiseksi. Jos haluat harjoitella interaktiivisesti sisäänrakennetulla koodieditorilla ja ympäri vuorokauden käytettävissä olevan tekoälytuutorin avulla sekä avata koko Spring Boot 4 -mikropalvelut ja REST-sovellusliittymät-kurssin, päivitä CoddyKit PROhon. Spring Boot 4 -mikropalvelut ja REST-sovellusliittymät-kurssilla on yhteensä 4 oppituntia.

Mitä opin oppitunnilla ”Integraatiotestaus @SpringBootTest-annotaatiolla”?

Testatkaa koko sovelluskontekstia. Harjoittelet Spring Boot 4 -mikropalvelut ja REST-sovellusliittymät-aihetta koodilla, jonka suoritat suoraan selaimessa. Ympäri vuorokauden käytettävissä oleva tekoälytuutori vastaa kysymyksiisi oppitunnin aikana.

Tarvitsenko kokemusta aloittaakseni Spring Boot 4 -mikropalvelut ja REST-sovellusliittymät-opiskelun?

Aiempi kokemus ei ole tarpeen. CoddyKitin Spring Boot 4 -mikropalvelut ja REST-sovellusliittymät-oppimispolku sopii vasta-alkajista edistyneisiin, joten voit aloittaa tästä tai alusta ja edetä omaan tahtiisi. Tämä on oppitunti 3/4.

Kuinka kauan ”Integraatiotestaus @SpringBootTest-annotaatiolla”-oppitunnin suorittaminen kestää?

Useimmat CoddyKitin oppitunnit kestävät noin 5–10 minuuttia. Jokainen oppitunti on lyhyt ja interaktiivinen, joten edistyt tasaisesti ja voit jatkaa siitä, mihin jäit – sekä verkossa että sovelluksessa.

Voinko kirjoittaa ja suorittaa koodia tällä Spring Boot 4 -mikropalvelut ja REST-sovellusliittymät-oppitunnilla?

Kyllä. Jokainen Spring Boot 4 -mikropalvelut ja REST-sovellusliittymät-oppitunti sisältää sisäänrakennetun koodieditorin, joten voit kirjoittaa ja suorittaa oikeaa koodia suoraan selaimessa ja saada välitöntä palautetta tekoälyltä – paikallista asennusta ei tarvita.

Kaikki tämän kurssin oppitunnit

  1. Yksikkötestaus JUnitilla ja Mockitolla
  2. Web-kerroksen testaus MockMvc:llä
  3. Integraatiotestaus @SpringBootTest-annotaatiolla
  4. Oikeat riippuvuudet Testcontainersilla
← Takaisin: Spring Boot 4 -mikropalvelut ja REST-sovellusliittymät