【问题标题】:Rollback changes made by @Sql(executionPhase = BEFORE_TEST_METHOD) in spring @Transactional Test回滚由 @Sql(executionPhase = BEFORE_TEST_METHOD) 在 spring @Transactional Test 中所做的更改
【发布时间】:2018-02-20 07:46:42
【问题描述】:

我有测试:

@Transactional
@RunWith(SpringJUnit4ClassRunner.class)
ClassServiceTest

并测试方法:

@Sql(executionPhase = BEFORE_TEST_METHOD, scripts ="test.sql")
public void methodTest() {
}

据我所知,@Transactional 与 SpringJUnit4ClassRunner 使所有测试 sql/db 更改为回滚。方法会回滚到之前执行的@Sql 脚本吗?

【问题讨论】:

    标签: spring spring-test transactional


    【解决方案1】:

    可以使用SqlGroup注解手动控制db的变化:

    @SqlGroup({
            @Sql(executionPhase = BEFORE_TEST_METHOD, scripts = "/sql/insert_data.sql"),
            @Sql(executionPhase = AFTER_TEST_METHOD, scripts = "/sql/drop_data.sql")
    })
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2021-11-12
      • 2017-04-14
      • 2018-09-27
      • 2019-01-27
      • 2021-02-11
      • 2011-03-22
      • 2020-06-12
      • 2018-11-08
      相关资源
      最近更新 更多