gpt4 book ai didi

spring-data - 如何在测试中用 Spring 数据 r2dbc 替换 @Sql?

转载 作者:行者123 更新时间:2023-12-04 12:16:12 27 4
gpt4 key购买 nike

在 Spring 数据 JPA 中有一个 @Sql用于为持久层设置集成测试非常方便的注释。它可以在每次测试之前推出测试数据,并在测试之后进行清理。
但是,我在 spring-data-r2dbc 中找不到它模块。在 spring-data-r2dbc 中是否有类似的东西可以轻松处理此任务?

最佳答案

目前我还没有找到比使用 org.springframework.data.r2dbc.connectionfactory.init.ScriptUtils#executeSqlScript(io.r2dbc.spi.Connection, org.springframework.core.io.Resource) 更好的方法与 JUnit 一起 @BeforeEach@AfterEach测试回调:

    @Autowired
private ConnectionFactory connectionFactory;

private void executeScriptBlocking(final Resource sqlScript) {
Mono.from(connectionFactory.create())
.flatMap(connection -> ScriptUtils.executeSqlScript(connection, sqlScript))
.block();

@BeforeEach
private void rollOutTestData(@Value("classpath:/db/insert_test_data.sql") Resource script) {
executeScriptBlocking(script);
}

@AfterEach
private void cleanUpTestData(@Value("classpath:/db/delete_test_data.sql") Resource script) {
executeScriptBlocking(script);
}

注意:这里我使用 JUnit5 和 jupiter API

关于spring-data - 如何在测试中用 Spring 数据 r2dbc 替换 @Sql?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/64115419/

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