Nou Generator de prompt AI — scrie prompturi mai bune pentru ChatGPT, Claude și Gemini →

Adnotarea @DataJpaTest în Spring Boot în Spring Boot

test Spring Boot 3.x / JUnit 5 Q&A / Distribuie cod

Testarea izolată a stratului de persistență: configurarea automată a bazei de date în memorie, rollback la fiecare test și inspectare SQL.

Sintaxă
@DataJpaTest / @Autowired private TestEntityManager entityManager

Adnotarea @DataJpaTest este un alt exemplu puternic de „test slice” oferit de Spring Boot. Aceasta configurează exclusiv componentele legate de persistență: entitățile JPA, interfețele Spring Data Repository și un TestEntityManager util pentru pregătirea datelor de test.

Fiecare metodă de test marcată cu @DataJpaTest este tranzacțională în mod implicit și realizează un rollback automat la final, asigurând că baza de date rămâne curată pentru testele următoare.

Exemplu: Testare repository cu TestEntityManager și rollback automat
package ro.dexblog.demo.repository;

import org.junit.jupiter.api.Test;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.test.autoconfigure.orm.jpa.DataJpaTest;
import org.springframework.boot.test.autoconfigure.orm.jpa.TestEntityManager;
import ro.dexblog.demo.model.Customer;
import static org.junit.jupiter.api.Assertions.*;

@DataJpaTest
class CustomerRepositoryTest {

    @Autowired
    private TestEntityManager entityManager;

    @Autowired
    private CustomerRepository customerRepository;

    @Test
    void shouldFindCustomerByEmail() {
        Customer customer = new Customer("Popescu Ion", "ion@dexblog.ro", "1800101123456");
        entityManager.persistAndFlush(customer);

        var found = customerRepository.findByEmail("ion@dexblog.ro");
        assertTrue(found.isPresent());
        assertEquals("Popescu Ion", found.get().getName());
    }
}

Comunitate & Schimb de cunoștințe

Întrebări & Exemple de Cod: Adnotarea @DataJpaTest în Spring Boot

Ai o nelămurire despre utilizarea comenzii Adnotarea @DataJpaTest în Spring Boot sau ai descoperit un truc / fragment de cod util? Distribuie-l cu ceilalți programatori!

💬

Fii primul care pune o întrebare sau distribuie un fragment de cod / prompt!

Nu au fost adăugate încă întrebări sau exemple de cod pentru această pagină. Dacă ai întâlnit o problemă sau ai un snippet util, adaugă-l mai jos pentru a-i ajuta pe ceilalți.

Comunitate Adaugă o întrebare sau distribuie un cod

Moderare & Siguranță:

Pentru a menține calitatea și securitatea informațiilor, fiecare întrebare sau fragment de cod/prompt este analizat (manual sau prin moderare asistată de AI) înainte de publicare.