如何使用 SQL Developer 管理带有回滚的单元测试
Posted
技术标签:
【中文标题】如何使用 SQL Developer 管理带有回滚的单元测试【英文标题】:How to manage unit tests with rollback with SQL Developer 【发布时间】:2019-07-04 19:21:51 【问题描述】:我想测试更改数据的包。每个测试都应该保持数据不变。我最近在 SQL Developer 中发现了单元测试模块,并尝试在启动时保存点并在拆卸时回滚,但没有成功。有什么好的方法吗?
我的环境: 带有 SQL Developer 4.2 的 Oracle 10g 数据库
代码:
启动是 PL/SQL 脚本
BEGIN Savepoint sp; END;
拆解是 PS/SQL 脚本
BEGIN ROLLBACK to sp; END;
【问题讨论】:
【参考方案1】:我花了 4 个小时才发现这一点。
原来SQL Developer有个bug!
它在 END 之后需要白色符号/空格;作为 PLSQL 代码并放置
pls-00103 begin function pragma procedure subtype type an identifier
错误。
我上面的代码就像魅力一样。
【讨论】:
【参考方案2】:大多数写入数据的代码都使用某种框架,该框架还可以管理事务以及提交和回滚。如果是这种情况,您将需要使用反向操作来撤消您正在测试的更新(即测试插入操作、做出断言,然后执行删除操作)。
【讨论】:
以上是关于如何使用 SQL Developer 管理带有回滚的单元测试的主要内容,如果未能解决你的问题,请参考以下文章
如何通过 SQL Developer 执行带有游标和表 OUT 参数的存储过程?
如何在 Oracle SQL Developer 中生成带有子查询的 INSERT 语句?
Oracle PL/SQL Developer集成TFS进行团队脚本文件版本管理