По умолчанию @DataJpaTest
настроит встроенную базу данных в памяти, отсканирует классы @Entity
и настроит репозитории Spring Data JPA.Это также транзакционный и откат в конце каждого теста.Если мы хотим отключить управление транзакциями, мы можем использовать:
@Transactional(propagation = Propagation.NOT_SUPPORTED)
Мы также можем внедрить bean-компонент TestEntityManager, специально разработанный для тестов, который является альтернативой JPA EntityManager.
@Autowired
private TestEntityManager entityManager;
Следовательно, наш тестовый класс должен быть похож на:
@RunWith(SpringRunner.class)
@DataJpaTest
public class MyJPAUnitTest extends SpringJpaUnitTestApplicationTests {
@Autowired
private TestEntityManager entityManager;
@Autowired
CustomerRepository repository;
@Test
public void testExample() {...}
}
Подробнее здесь: https://grokonez.com/testing/datajpatest-with-spring-boot