gpt4 book ai didi

java - 是否可以在不使用 Spring 框架的情况下在每个 JUnit 测试用例之后回滚数据库?

转载 作者:行者123 更新时间:2023-12-02 09:07:53 24 4
gpt4 key购买 nike

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

这对于javax或者除了Spring之外的其他任何东西都可能吗?

最佳答案

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

你应该:

  1. 拥有一个仅用于集成测试的数据库(或嵌入式数据库、容器数据库或 RAM 数据库)
  2. 执行,例如在 class rule 中或在 test rule ,编写 SQL 脚本以使数据库处于已知状态
  3. 执行测试
  4. 如果测试修改了数据库,则运行修改后的表的截断(再次或在您的类或测试规则中),并在执行新测试之前,在第 2 点再次运行脚本
  5. 运行集成测试不像单元测试那么频繁

关于java - 是否可以在不使用 Spring 框架的情况下在每个 JUnit 测试用例之后回滚数据库?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59661856/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com