fed*_*lov 5 java spring integration-testing
我需要以下逻辑:
1. 测试方法开始
2. 事务打开
3. 准备 SQL 文件被执行
4. 测试方法被处理
5. 事务回滚
我的测试类注释为
@SpringBootTest
@Transactional
@Rollback(true)
Run Code Online (Sandbox Code Playgroud)
我尝试使用@org.springframework.test.context.jdbc.Sqlbefore test 方法,但它不起作用 - 看起来它打开一个事务,执行 SQL,关闭事务(恢复它?)然后开始测试。测试看不到 SQL 文件的更改
我的问题是:如何@org.springframework.test.context.jdbc.Sql在测试方法的事务中执行?有没有其他方法可以解决这个问题?
您应该查看注释的config属性,@Sql可以指定TransactionMode要使用的属性。
因此,例如以下脚本在进入测试方法之前在单独的事务中执行:
@Sql(
scripts = {"classpath:file1.sql", "classpath:file2.sql"},
config = @SqlConfig(transactionMode = TransactionMode.ISOLATED))
@Test
public void foo() { ... }
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1704 次 |
| 最近记录: |