@DataJpaTest 自动装配数据源
@DataJpaTest autowire dataSource
我正在使用 dbsetup 框架来设置我的数据库。我正在尝试使用注释 @DataJpaTest
测试存储库级别(我正在使用 Spring 数据)。要使用 "dbsetup" 设置数据库,我需要自动连接数据源,但我无法自动连接,因为 @DataJpaTest
创建了自己的数据源,而数据源已经存在(但我不知道如何使用它。 ..).问题是如何使用 @DataJpaTest
?
自动连接数据源来设置我的数据库
@RunWith(SpringRunner.class)
@DataJpaTest
@AutoConfigureTestDatabase(replace = AutoConfigureTestDatabase.Replace.NONE)
@TestPropertySource("/application-test.properties")
public class ArticleRepositoryTest {
@Autowired
private ApplicationContext applicationContext;
@Autowired
private EntityManager entityManager;
@Autowired
private ArticleRepository articleRepository;
@Autowired
private TagRepository tagRepository;
@Autowired
private UserRepository userRepository;
//here is the error, because datasource already exists...
@Autowired
private DataSource dataSource;
@Before
public void cleanData() throws SQLException {
Operation operation = sequenceOf(CommonOperations.DELETE_ALL);
DbSetup dbSetup = new DbSetup(new DataSourceDestination(dataSource), operation);
dbSetup.launch();
DBUtil.resetAutoIncrementColumns(applicationContext, "article", "tag", "user");
}
如果不需要自动配置的数据库,请删除@DataJpaTest,@AutoConfigureTestDatabase 会根据您在应用程序中配置的数据库创建数据源-test.properties。
我正在使用 dbsetup 框架来设置我的数据库。我正在尝试使用注释 @DataJpaTest
测试存储库级别(我正在使用 Spring 数据)。要使用 "dbsetup" 设置数据库,我需要自动连接数据源,但我无法自动连接,因为 @DataJpaTest
创建了自己的数据源,而数据源已经存在(但我不知道如何使用它。 ..).问题是如何使用 @DataJpaTest
?
@RunWith(SpringRunner.class)
@DataJpaTest
@AutoConfigureTestDatabase(replace = AutoConfigureTestDatabase.Replace.NONE)
@TestPropertySource("/application-test.properties")
public class ArticleRepositoryTest {
@Autowired
private ApplicationContext applicationContext;
@Autowired
private EntityManager entityManager;
@Autowired
private ArticleRepository articleRepository;
@Autowired
private TagRepository tagRepository;
@Autowired
private UserRepository userRepository;
//here is the error, because datasource already exists...
@Autowired
private DataSource dataSource;
@Before
public void cleanData() throws SQLException {
Operation operation = sequenceOf(CommonOperations.DELETE_ALL);
DbSetup dbSetup = new DbSetup(new DataSourceDestination(dataSource), operation);
dbSetup.launch();
DBUtil.resetAutoIncrementColumns(applicationContext, "article", "tag", "user");
}
如果不需要自动配置的数据库,请删除@DataJpaTest,@AutoConfigureTestDatabase 会根据您在应用程序中配置的数据库创建数据源-test.properties。