我正在使用 spring 框架编写一些集成测试。我对不同的集成测试类有不同的 SQL 脚本。像这样的事情:
@ContextConfiguration(classes = ...)
@Sql("classpath:sportCenter-test.sql")
public class SportCenterResourceIT {
...
}
除了之前执行的 SQL 脚本之外,一切都运行良好each测试,而不是每堂课一次。我已经搜索了 spring 文档一段时间,但找不到与此选项相关的内容。
有人能给我提示吗?
添加org.springframework.transaction.annotation.Transactional
类级别的注释将阻止任何更改@Sql
脚本在测试之间持续存在。所以你的代码变成:
@ContextConfiguration(classes = ...)
@Sql("classpath:sportCenter-test.sql")
@Transactional
public class SportCenterResourceIT {
...
}
这种组合将产生以下结果:
- Your
@Sql
脚本将在每次测试之前运行
- 测试本身将运行
- 步骤 1 或 2 中的任何数据库更改都将在每次测试结束时恢复
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)