如何使用 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进行团队脚本文件版本管理

Oracle PL/SQL Developer集成TFS进行团队脚本文件版本管理

在关闭pl/sql之前未提交的事物,会不会被默认提交?

从 Oracle sql developer 或 eclipse 数据源资源管理器连接 HyperSQL Db