@RunWith(SpringRunner.class)
@SpringBootTest(classes=Application.class)
public class TaskProviderTest {
}
我正在使用属性文件
中配置的h2数据库spring.datasource.url=jdbc:h2:mem:testdb;MODE=PostgreSQL
spring.datasource.platform=h2
spring.jpa.hibernate.ddl-auto=none
spring.datasource.continue-on-error=true
spring.jpa.generate-ddl=true
spring.jpa.hibernate.ddl-auto=create-drop
我使用schema.sql和data.sql文件进行单元测试。两个脚本都在测试启动时执行。
无论如何,对于不同的Junit测试用例,是否使用不同的data.sql文件?
答案 0 :(得分:1)
尝试使用EmbeddedDataSource并根据代码中的方法对其进行配置。 下面的代码演示了如何使用2个sql脚本创建数据源
@Bean
public DataSource dataSource() {
final EmbeddedDatabaseBuilder builder = new EmbeddedDatabaseBuilder();
return builder
.setType(EmbeddedDatabaseType.HSQL)
.addScript("sql/create-db.sql")
.addScript("sql/fill-db.sql")
.build();
}
答案 1 :(得分:1)
您可以使用Spring的EmbeddedDatabaseBuilder
在单元测试的setUp()
方法中构建数据库,为不同的测试提供不同的data.sql
脚本。
示例:
public EmbeddedDatabase database(String dataScript) {
return new EmbeddedDatabaseBuilder().
setType(H2).
addScript("schema.sql").
addScript(dataScript).
build();
}
参考: