Integraatiotestaus @SpringBootTest-annotaatiolla
Testatkaa koko sovelluskontekstia.
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ä:
@SpringBootTestlataa koko kontekstinRANDOM_PORTyhdessäTestRestTemplate- taiWebTestClient-luokan kanssa mahdollistaa oikean HTTP:n@Transactionalperuu tietokantamuutokset- Käyttäkää osittaisia testejä nopeuden parantamiseksi
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
- Yksikkötestaus JUnitilla ja Mockitolla
- Web-kerroksen testaus MockMvc:llä
- Integraatiotestaus @SpringBootTest-annotaatiolla
- Oikeat riippuvuudet Testcontainersilla