2017-09-24 31 views
0

有没有什么办法可以做到这一点?我想测试一些包含DELETE和UPDATE语句的SQL请求,但不想提交更改。测试(JUnit)SQL DELETE和UPDATE语句没有提交

+1

关闭自动提交并在与UPDATE或DELETE相同的事务中执行SELECT操作? –

+0

你究竟需要测试什么?如果您跳过提交,您也将错过任何在可延迟约束条件下实施的检查(如果您的数据库支持它们)。通常,测试数据访问,以便在运行测试之前设置数据库(专用测试数据库或内存数据库),并在运行测试后清理/放弃数据库。 –

+1

听起来像集成测试,而不是单元测试给我 – Catchwa

回答

0

确实取决于您正在使用的RDBMS。在Oracle中,您可以回滚任何内容,直到执行提交。在事务数据库中,通常有一个选项可以打开事务,混淆一些数据而不是关闭或回滚。

尽管最好的办法是用一部分数据制作表格的副本并尝试所有内容。 PS:不要乱用Prod! :)