Spring @JpaDataTest без транзакции

Я пытаюсь использовать @JpaDataTest для проверки моего репозитория.

Я использую это как:

@RunWith(SpringRunner.class)
@DataJpaTest
public class MyTest {
    @Autowired
    private TestEntityManager entityManager;
    @Autowired
    private MyRepo myRepo;

    @Test
    public void myTest() {
        assertEquals(0, myRepo.findAll().size());
        entityManager.persist(new MyEntity());
        //entityManager.flush();
        assertEquals(1, myRepo.findAll().size());
    }
}

Тест не проходит из-за того, что второй объект findAll возвращает 0

Если я удалю комментарий, чтобы сбросить

я получил ошибку

javax.persistence.TransactionRequiredException: no transaction is in progress

Привет Александр. Как вы запускаете этот тест? Maven?

Tsakiroglou Fotis 01.03.2019 16:15

Привет, я запускаю тест Junit, если я использую maven, он тоже не работает. Вчера я проверил его с другим классом, но я не сохранил его, и все работает нормально...

Alexandre 01.03.2019 16:21
1
2
176
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Я нахожу, почему...

@SpringBootConfiguration
@EnableAutoConfiguration
@ComponentScan
public class Application {

    public static void main(String[] args) {
        SpringApplication.run(Application.class, args);
    }
}

если я удалю @ComponentScan, это сработает...

Другие вопросы по теме