Использование аннотации DataJpaTest [Spring-boot] - PullRequest
0 голосов
/ 10 июня 2019

Что такое аннотация @DataJpaTest при тестировании? мы нуждаемся в этом с каждым тестом соединения дБ?

тест работает даже без аннотации

 @RunWith(SpringRunner.class) 
 @DataJpaTest

почему @DataJpaTest используется, почему он используется и когда его использовать?

1 Ответ

0 голосов
/ 10 июня 2019

По умолчанию @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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...