43.3.11 自动配置的JDBC测试

@JdbcTest@DataJpaTest相似,不过是给纯JDBC相关的测试用的。默认的,它将会配置一个内存数据库和一个JdbcTemplate。常规的@Componentbean将不会加载进ApplicationContext

JDBC测试类是事务型的,默认在每个测试结束时回滚,具体查看Spring参考文档的相关章节。如果这不是你想要的结果,你可以按如下方式对一个测试或是整个类禁用事务管理:

import org.junit.Test;
import org.junit.runner.RunWith;
import org.springframework.boot.test.autoconfigure.jdbc.JdbcTest;
import org.springframework.test.context.junit4.SpringRunner;
import org.springframework.transaction.annotation.Propagation;
import org.springframework.transaction.annotation.Transactional;

@RunWith(SpringRunner.class)
@JdbcTest
@Transactional(propagation = Propagation.NOT_SUPPORTED)
public class ExampleNonTransactionalTests {

}

如果你更喜欢在非真实的数据库上运行你的测试,你可以和DataJpaTest一样,使用@AutoConfigureTestDatabase注解。(查看43.3.10 自动配置的Data JPA测试

附录中可以查看@JdbcTest开启的自动配置列表。

最后更新于