首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何用Spring data r2dbc替换测试中的@Sql?

如何用Spring data r2dbc替换测试中的@Sql?
EN

Stack Overflow用户
提问于 2020-09-29 16:08:15
回答 1查看 269关注 0票数 4

在Spring data JPA中,有一个@Sql注释,对于设置持久层集成测试非常方便。它可以在每次测试之前推出测试数据,并在每次测试之后执行清理。

但是,我在spring-data-r2dbc模块中找不到它。在spring-data-r2dbc中有没有类似的方法可以轻松地处理这个任务

EN

回答 1

Stack Overflow用户

发布于 2020-09-29 19:13:19

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

代码语言:javascript
复制
    @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);
    }

注意:这里我使用的是带有jupiter API的JUnit5

票数 5
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/64115419

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档