Spring @JpaDataTest没有交易

时间:2019-03-01 15:04:38

标签: spring spring-test

我想使用@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:没有正在进行的交易

1 个答案:

答案 0 :(得分:1)

我找到原因...

@SpringBootConfiguration
@EnableAutoConfiguration
@ComponentScan
public class Application {

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

如果我删除@ComponentScan,它将起作用...