gpt4 book ai didi

spring-boot - 在 Spring Boot 集成测试中使用 TestContainers 填充数据库

转载 作者:行者123 更新时间:2023-12-03 14:36:43 25 4
gpt4 key购买 nike

我正在测试 TestContainers,我想知道如何填充执行 .sql 文件的数据库以创建结构并添加一些行。
怎么做?

@Rule
public PostgreSQLContainer postgres = new PostgreSQLContainer();

最佳答案

在使用 Spring Boot 时,我发现使用 TestContainers 的 JDBC URL 支持最容易。

您可以创建一个 application-integration-test.properties文件(通常在 src/test/resources 中,内容如下:

spring.datasource.url=jdbc:tc:postgresql://localhost/myappdb
spring.datasource.driverClassName=org.testcontainers.jdbc.ContainerDatabaseDriver
spring.datasource.username=user
spring.datasource.password=password
spring.jpa.database-platform=org.hibernate.dialect.PostgreSQLDialect
spring.jpa.hibernate.ddl-auto=none
# This line is only needed if you are using flyway for database migrations
# and not using the default location of `db/migration`
spring.flyway.locations=classpath:db/migration/postgresql

请注意 :tc JDBC url 中的一部分。

您现在可以像这样编写单元测试:
@RunWith(SpringRunner.class)
@DataJpaTest
@AutoConfigureTestDatabase(replace = AutoConfigureTestDatabase.Replace.NONE) @ActiveProfiles("integration-test")
public class UserRepositoryIntegrationTest {
@Autowired
private MyObjectRepository repository;
@PersistenceContext
private EntityManager entityManager;
@Autowired
private JdbcTemplate template;

@Test
public void test() {
// use your Spring Data repository, or the EntityManager or the JdbcTemplate to run your SQL and populate your database.
}

注意:这在 Practical Guide to Building an API Back End with Spring Boot 中有解释,第 7 章更详细(免责声明:我是本书的作者)

关于spring-boot - 在 Spring Boot 集成测试中使用 TestContainers 填充数据库,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53078306/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com