0Pricing
Spring Boot 4 Microservices & REST APIs · Leçon

Tests d'intégration avec @SpringBootTest

Testez l'ensemble du contexte de l'application.

Tests d'intégration avec @SpringBootTest est une leçon Spring Boot 4 Microservices & REST APIs gratuite sur CoddyKit. Ceci est la leçon 3 sur 4. Tu peux lire la leçon complète ci-dessous gratuitement — puis la pratiquer en direct dans le navigateur avec un éditeur de code intégré et un tuteur IA 24/7. Elle fait partie du parcours d'apprentissage Spring Boot 4 Microservices & REST APIs, et ta progression se synchronise sur le web et l'application CoddyKit. Le cours Spring Boot 4 Microservices & REST APIs comprend 4 leçons au total.

Certaines parties de cette leçon n'ont pas encore été traduites et s'affichent en anglais.

What is an Integration Test

An integration test exercises multiple layers together — controller, service, repository — using a real Spring context.

It catches wiring and configuration problems that unit tests miss.

@SpringBootTest

@SpringBootTest boots the entire application context, loading all beans.

@SpringBootTest
class ApplicationIntegrationTest {
    @Autowired
    UserService userService;

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

WebEnvironment Modes

Control whether a real server starts with the webEnvironment attribute.

  • MOCK (default) — mock servlet environment
  • RANDOM_PORT — real server on a random port
@SpringBootTest(
    webEnvironment = WebEnvironment.RANDOM_PORT)
class ApiTest { }

Testing with TestRestTemplate

With a real port you can make actual HTTP calls using TestRestTemplate.

@Autowired
TestRestTemplate restTemplate;

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

WebTestClient

WebTestClient is a fluent client that works for both MVC and WebFlux apps.

@Autowired
WebTestClient webTestClient;

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

Using a Test Database

By default Spring Boot can replace your datasource with an in-memory H2 database for tests.

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

Test Properties

Override configuration for tests with @TestPropertySource or an application-test.properties profile.

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

Activating Profiles

Use @ActiveProfiles to run with a specific Spring profile.

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

Transactional Rollback

Annotate tests with @Transactional so each test's database changes roll back automatically, keeping tests isolated.

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

Slicing for Speed

Full @SpringBootTest is slow. Prefer slices like @DataJpaTest or @WebMvcTest when you only need one layer.

@DataJpaTest

@DataJpaTest loads only JPA components and an embedded database — ideal for repository tests.

@DataJpaTest
class UserRepositoryTest {
    @Autowired UserRepository repository;

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

Quick Check

Test your understanding of integration testing.

Recap

You learned to write integration tests:

  • @SpringBootTest loads the full context
  • RANDOM_PORT + TestRestTemplate/WebTestClient for real HTTP
  • @Transactional rolls back DB changes
  • Use slices for speed

Questions Fréquemment Posées

La leçon « Tests d'intégration avec @SpringBootTest » est-elle gratuite ?

Oui — le texte complet de « Tests d'intégration avec @SpringBootTest » est gratuit à lire ici sur le web. Pour la pratiquer de manière interactive (un éditeur de code intégré et un tuteur IA 24/7) et déverrouiller le reste du cours Spring Boot 4 Microservices & REST APIs, passe à CoddyKit PRO. Le cours Spring Boot 4 Microservices & REST APIs comprend 4 leçons au total.

Qu'est-ce que j'apprendrai dans « Tests d'intégration avec @SpringBootTest » ?

Testez l'ensemble du contexte de l'application. Tu pratiques Spring Boot 4 Microservices & REST APIs avec du code pratique que tu exécutes directement dans le navigateur, et un tuteur IA 24/7 répond à tes questions au fur et à mesure que tu avances dans la leçon.

Dois-je avoir de l'expérience pour commencer Spring Boot 4 Microservices & REST APIs ?

Aucune expérience préalable n'est requise. Spring Boot 4 Microservices & REST APIs sur CoddyKit est structuré pour les débutants jusqu'aux apprenants avancés, donc tu peux commencer ici ou depuis le début et avancer à ton rythme. Ceci est la leçon 3 sur 4.

Combien de temps prend la leçon « Tests d'intégration avec @SpringBootTest » ?

La plupart des leçons CoddyKit prennent environ 5–10 minutes. Chacune est courte et interactive, tu progresses régulièrement et tu repiques exactement où tu t'es arrêté sur le web et l'app.

Peux-tu écrire et exécuter du code dans cette leçon Spring Boot 4 Microservices & REST APIs ?

Oui. Chaque leçon Spring Boot 4 Microservices & REST APIs inclut un éditeur de code intégré, tu écris et exécutes du vrai code directement dans ton navigateur et tu reçois des retours IA instantanés — aucune configuration locale requise.

Toutes les leçons de ce cours

  1. Tests unitaires avec JUnit et Mockito
  2. Tests de la couche web avec MockMvc
  3. Tests d'intégration avec @SpringBootTest
  4. Dépendances réelles avec Testcontainers
← Retour à Spring Boot 4 Microservices & REST APIs