是否可以在每个JUnit测试用例之后不使用Spring框架来回滚数据库?

问题描述 投票:0回答:1

我正在尝试测试从数据库更新多个表的服务,并且我希望在每个测试用例之后将数据库回滚到以前的状态。我发现的所有解决方案都使用Spring框架中的@Transactional和@Rollback,但是由于我的应用程序不是Spring Web应用程序,所以我想使用javax @Transactional,它对我不起作用。

除了Spring之外,javax是否可能全部使用?

java junit transactions rollback
1个回答
0
投票

回滚事务对于测试(集成测试)不是一个好主意,因为在提交之前可能无法验证约束。

您应该:

  1. 仅具有用于集成测试的数据库(或嵌入式数据库或容器数据库)
  2. 例如,在类规则中执行脚本SQL,以使数据库处于已知状态
  3. 执行测试
  4. 如果测试修改了数据库,然后运行截短的修改表,并在执行新测试之前,再次在第2点运行脚本
  5. 运行集成测试不如单元测试那么频繁
© www.soinside.com 2019 - 2024. All rights reserved.