Тестовые скрипты для хранимых процедур PL/SQL

С TSQL я привык проводить повторяющиеся тесты для своих хранимых процессов. Обычно это может включать перевод БД в определенное состояние, запуск 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 или где-либо еще.


person Karl Kieninger    schedule 29.09.2014    source источник


Ответы (1)


В Oracle, используя такие инструменты, как SQL*Plus, и инструменты с графическим интерфейсом, такие как SQL Developer, у вас есть много вариантов:

  1. Чтобы выполнить операторы и процедуры в одном сеансе по порядку, то есть с использованием процедурного метода PL/SQL, напишите анонимный блок plsql и выполните его как скрипт.
  2. У большинства инструментов на основе графического интерфейса есть опция, такая как Execute as script или Test Window, для выполнения ваших сценариев по отдельности или встроенных в анонимный блок.
  3. Используя DBMS_SCHEDULER, вы также можете выполнить ту же задачу.

Поскольку вас интересует PL/SQL Developer инструментальный продукт Allround Automations, вы можете просто использовать test window для тестирования отдельных объектов.

Я задокументировал несколько полезных функций инструмента PL/SQL Developer в своем блоге, пожалуйста, прочитайте http://lalitkumarb.wordpress.com/2014/08/14/plsql-developer-settings/

person Lalit Kumar B    schedule 29.09.2014
comment
Пожалуйста, дайте мне знать, если у вас есть дополнительные вопросы. - person Lalit Kumar B; 29.09.2014