在不提交的情况下测试 (JUnit) SQL DELETE 和 UPDATE 语句
Posted
技术标签:
【中文标题】在不提交的情况下测试 (JUnit) SQL DELETE 和 UPDATE 语句【英文标题】:Testing (JUnit) SQL DELETE and UPDATE statement without commiting 【发布时间】:2018-03-05 19:47:30 【问题描述】:有没有办法做到这一点?我想测试一些包含 DELETE 和 UPDATE 语句但不想提交更改的 SQL 请求。
【问题讨论】:
关闭自动提交并在与 UPDATE 或 DELETE 相同的事务中执行 SELECT? 您实际上需要测试什么?如果您跳过提交,您还将错过在可延迟约束中实现的任何检查(如果您的数据库支持它们)。通常,您测试数据访问,以便在运行测试之前设置数据库(专用测试数据库或内存数据库)并在运行测试后清理/丢弃数据库。 在我看来,这听起来像是集成测试,而不是单元测试 【参考方案1】:确实取决于您使用的 RDBMS。在 Oracle 中,您可以回滚任何内容,直到执行提交。在事务性数据库中,通常有一个选项可以打开事务,处理一些数据,然后关闭或回滚。
最好的方法是用一个数据片制作一个表的副本,然后尝试那里的一切。
PS:别惹 Prod! :)
【讨论】:
以上是关于在不提交的情况下测试 (JUnit) SQL DELETE 和 UPDATE 语句的主要内容,如果未能解决你的问题,请参考以下文章
是否可以在不使用 SQL 连接的情况下对不同年份进行每周比较?
是否可以在不使用 Spring Boot JPA 的情况下测试基于 java 的 CRUD?