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());
}
}
Întrebări & Exemple de Cod:
Adnotarea @DataJpaTest în Spring BootAi o nelămurire despre utilizarea comenzii
Adnotarea @DataJpaTest în Spring Bootsau 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.