【发布时间】:2020-08-31 08:40:32
【问题描述】:
我正在尝试在执行 Spring Boot Junit 类/回归测试套件之前执行一个可能包含任何 CRUD 操作的 Sql 文件。我使用典型/传统的 JDBC 方式做到了,但想使用最新的 API。 JDBC 模板在这里似乎无济于事,因为我正在尝试运行脚本。请在这里帮助我。
【问题讨论】:
标签: java sql-server database jdbc junit4
我正在尝试在执行 Spring Boot Junit 类/回归测试套件之前执行一个可能包含任何 CRUD 操作的 Sql 文件。我使用典型/传统的 JDBC 方式做到了,但想使用最新的 API。 JDBC 模板在这里似乎无济于事,因为我正在尝试运行脚本。请在这里帮助我。
【问题讨论】:
标签: java sql-server database jdbc junit4
我相信您想要实现的是在运行测试之前预先为您的数据库播种。为此,我通常使用两种策略之一。
您可以将名为 data.sql 的文件放入您的 src/main/resources 或 src/test/resources 文件夹中。 Spring Boot 会自动拾取它并将数据导入您的数据库。如果您只想导入架构,您可以使用schema.sql 作为替代方案。
如果你想为测试加载特定的数据和模式,你也可以随时使用@Sql 注释。它允许您在运行测试之前指定要运行的 SQL 文件列表。
@Sql({"/employee_schema.sql", "/employee_test_data.sql"})
public class EmployeeTest {
@Autowired
private EmployeeRepository employeeRepository;
@Test
public void testLoadDataForTestClass() {
assertEquals(3, employeeRepository.findAll().size());
}
}
我一般参考这个优秀的教程https://www.baeldung.com/spring-boot-data-sql-and-schema-sql
【讨论】: