PL / SQL存储过程的测试脚本

时间:2014-09-29 17:01:53

标签: oracle plsql plsqldeveloper

使用TSQL我习惯于为我的存储过程进行一些可重复的测试。通常,这可能包括将db置于特定状态,运行sproc,验证状态并回滚。人为的例子可能是这样的"

BEGIN TRAN
--input for test case
DECLARE @TestName VARCHAR(10) = 'bob'
--insert test row
INSERT INTO tbl (data) values (@TestName)
--display initial state of target row
SELECT * FROM tbl WHERE data = @TestName
--do some useful test
EXEC MyProc
--display the final state of the target row
SELECT * FROM tbl WHERE data = @TestName
--put the db back where it started
ROLLBACK TRAN

现在我正在使用Oracle和PL / SQL,我尝试使用一些类似的模式来测试我的工作,而不是发现它对我来说很明显。我相信我可以通过几种不同的方式来实现它,但却没有任何实际工作。理想情况下,我会有一个脚本,我可以在其中运行多个测试用例并检查结果。

我正在尝试在PL / SQL Developer中工作并理解它可能与它在Oracle SQL Developer或其他地方的工作方式有所不同。

1 个答案:

答案 0 :(得分:1)

在Oracle中,使用SQL*Plus等工具和SQL Developer等GUI工具,您有很多选择:

  1. 要按顺序在单个会话中执行语句和过程,即使用PL/SQL的过程方法,请编写匿名plsql块并将其作为脚本执行。
  2. 大多数基于GUI的工具都有Execute as scriptTest Window这样的选项来单独执行脚本或嵌入匿名块。
  3. 使用DBMS_SCHEDULER也可以完成相同的任务。
  4. 由于您对PL/SQL Developer的{​​{1}}工具产品感兴趣,因此您只需使用Allround Automations来测试单个对象即可。

    我在博客中记录了test window工具的一些有用功能,请阅读http://lalitkumarb.wordpress.com/2014/08/14/plsql-developer-settings/