如何解决使用select语句作为单元测试数据而不是指定数据Oracle
我是Oracle单元测试的新手。我一直在尝试对程序进行单元测试,该程序在其脚本中使用表格。我想对单元测试使用select语句(具有单行输入而不是很多行)。问题是oracle sql开发人员单元测试会自动使用现有表进行测试,而我不希望创建更多表进行测试。有办法吗?我尝试在启动过程中编写脚本,但是sql开发人员只是从表中获取数据。
脚本:
DECLARE SALARY NUMBER;
COMMISION_PCT NUMBER;
EMPLOYEE_ID NUMBER;
BEGIN
select 8400 as salary,0.2 as COMMISSION_PCT,1001 AS EMPLOYEE_ID
INTO SALARY,COMMISION_PCT,EMPLOYEE_ID
FROM DUAL;
END;
解决方法
此答案假设您从不在任何过程中均不使用COMMIT
语句(并且最好拥有开发和生产服务器,以便在万一出错的情况下,您没有测试您的实时客户数据)。
在测试设置中,您可以删除表中的所有行,并放入要用于测试的示例数据:
BEGIN
DELETE FROM table1;
DELETE FROM table2;
INSERT INTO table1 (salary,commission_pct,employeed_id)
SELECT 8400,0.2,1001 FROM DUAL;
INSERT INTO table2 (employeed_id,col1,col2)
SELECT 1001,1,1 FROM DUAL UNION ALL
SELECT 1001,2,2 FROM DUAL;
END;
/
然后,您可以使用示例数据对过程进行测试。
最后,在下拉菜单中,您可以ROLLBACK
进行更改以删除测试数据并恢复以前的任何数据:
BEGIN
ROLLBACK;
END;
/
(您必须不要 COMMIT
测试过程中的更改;否则,您将COMMIT
测试数据,ROLLBACK
仅返回最后一个COMMIT
。当您想从第三方应用程序COMMIT
进行操作时,可以将大多数应用程序设置为在关闭交易时自动提交交易,而不是使用显式的COMMIT
语句。)
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。