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

Oikeat riippuvuudet Testcontainersilla

Testatkaa oikeita tietokantoja säiliöissä.

Oppitunti 4/413 vaihetta

Oikeat riippuvuudet Testcontainersilla on ilmainen Spring Boot 4 -mikropalvelut ja REST-sovellusliittymät-oppitunti CoddyKitissä. Tämä on oppitunti 4/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.

Miksi Testcontainersia käytetään

Testcontainers suorittaa oikeita palveluita — PostgreSQL:ää, Redisiä ja Kafkaa — Docker-säilöissä testien aikana.

Testaatte oikeaa tietokantaa muistinsisäisen korvikkeen sijaan ja löydätte murre- ja toimintaerot.

Riippuvuuden lisääminen

Lisätkää Testcontainersin JUnit- ja tietokantamoduulit koontiinne.

// build.gradle
testImplementation "org.testcontainers:junit-jupiter"
testImplementation "org.testcontainers:postgresql"

@Testcontainers-annotaatio

@Testcontainers testiluokassa ottaa säilöjen elinkaaren hallinnan käyttöön.

@Testcontainers
@SpringBootTest
class UserRepositoryIT {
    // containers declared here
}

PostgreSQLContainerin määrittäminen

Staattinen @Container-kenttä määrittää käynnistettävän tietokantanäköistiedoston.

@Container
static PostgreSQLContainer<?> postgres =
    new PostgreSQLContainer<>("postgres:16")
        .withDatabaseName("testdb")
        .withUsername("test")
        .withPassword("test");

Tietolähteen kytkeminen

Käyttäkää @DynamicPropertySource-annotaatiota säilön luoman JDBC-URL-osoitteen välittämiseen Springille.

@DynamicPropertySource
static void props(DynamicPropertyRegistry registry) {
    registry.add("spring.datasource.url",
        postgres::getJdbcUrl);
    registry.add("spring.datasource.username",
        postgres::getUsername);
    registry.add("spring.datasource.password",
        postgres::getPassword);
}

Täydellinen repositoriotesti

Nyt repositoriotestit suoritetaan oikeaa PostgreSQL:ää vasten.

@Test
void savesAndReads() {
    User saved = repository.save(new User("Alice"));
    assertThat(repository.findById(saved.getId()))
        .isPresent();
}

Staattiset ja instanssisäilöt

static-säilö käynnistetään kerran kaikille luokan testeille (nopeampi). Ei-staattinen säilö käynnistetään uudelleen jokaiselle testille (parempi eristys).

Muita säilötyyppejä

Testcontainers sisältää moduuleja monille palveluille.

@Container
static GenericContainer<?> redis =
    new GenericContainer<>("redis:7")
        .withExposedPorts(6379);

Säilöjen uudelleenkäyttö

Ottakaa säilöjen uudelleenkäyttö käyttöön nopeuttaaksenne paikallisia ajoja testisuoritusten välillä.

@Container
static PostgreSQLContainer<?> postgres =
    new PostgreSQLContainer<>("postgres:16")
        .withReuse(true);

Spring Bootin palveluyhteydet

Spring Boot 3.1 ja uudemmat versiot voivat määrittää tietolähteen automaattisesti säilöstä @ServiceConnection-annotaation avulla, jolloin @DynamicPropertySource-annotaatiota ei tarvita.

@Container
@ServiceConnection
static PostgreSQLContainer<?> postgres =
    new PostgreSQLContainer<>("postgres:16");

Docker-vaatimus

Testcontainers tarvitsee tietokoneessa tai CI-agentissa käynnissä olevan Docker-moottorin. Ilman Dockeria testit eivät pysty käynnistämään säilöjä.

Pikatarkistus

Testatkaa, miten hyvin ymmärrätte Testcontainersia.

Kertaus

Opitte testaamaan oikeita riippuvuuksia vasten:

  • @Testcontainers + @Container käynnistävät Docker-palvelut
  • PostgreSQLContainer oikeaa tietokantaa varten
  • @DynamicPropertySource tai @ServiceConnection kytkee tietolähteen
  • Edellyttää käynnissä olevaa Docker-moottoria
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 ”Oikeat riippuvuudet Testcontainersilla” ilmainen?

Kyllä – oppitunnin ”Oikeat riippuvuudet Testcontainersilla” 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 ”Oikeat riippuvuudet Testcontainersilla”?

Testatkaa oikeita tietokantoja säiliöissä. 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 4/4.

Kuinka kauan ”Oikeat riippuvuudet Testcontainersilla”-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