Как создать автоматизированные тесты для процедуры Oracle? - PullRequest
1 голос
/ 01 ноября 2011

Справочная информация -

У меня есть клиент, у которого есть база данных Oracle со многими процедурами и функциями, которые содержат бизнес-логику.Как «хороший» разработчик, мне нравится, когда вся моя бизнес-логика оборачивается автоматическими тестами.

Рассматриваемая процедура очень длинная с вложенными ifs.Он обращается ко многим таблицам и представлениям на основе переданных данных и данных, извлеченных из базы данных.

Моя первоначальная мысль - создать приложение ac #, содержащее только тесты NUnit, которые будут использовать данные, уже находящиеся в базе данных, для тестирования процедуры.Как только у меня будет 100% покрытие кода, я изменю эти тесты, чтобы вставить / очистить тестовые данные.Как только это будет сделано, я смогу реорганизовать и изменить процедуру по мере необходимости, не беспокоясь о том, чтобы что-то сломать.

Существует ли лучший / более простой способ автоматизированного тестирования процедур / пакетов / функций Oracle?

РЕДАКТИРОВАТЬ : я не могу использовать то, что нужно установить на сервере в данный момент.

Ответы [ 2 ]

1 голос
/ 02 ноября 2011

Вы можете использовать одну из уже упомянутых платформ для целевого тестирования PL / SQL - что, вероятно, является самым простым решением вашей проблемы.

Если вы действительно хотите использовать свое собственное решение, используйте PL / SQL procs / functionsих легко вызывать из .NET, так что вы можете просто использовать xUnit в качестве бегуна:

  • Ключ в действительности заключается в том, чтобы убедиться, что вы можете настроить конкретный известный сценарий ввода для каждого теста.Вы можете применить свой подход к этому решению (сценарии sql, пользовательские файлы конфигурации, создать данные в коде) или использовать существующую платформу, предназначенную для сброса вашей базы данных до исходного известного состояния, определенного для каждого теста (что-то вроде NDbUnit).

  • Напишите небольшую библиотеку-обертку, которая позволяет легко вызывать ваши процедуры, чтобы сделать тесты более читабельными и лаконичными.

  • Чтобы убедиться, что ваши тесты не оставляют следов, и вы оказались вовлечены в тестовые зависимости и проблемы с упорядочением, вы можете использовать транзакции как часть ваших тестов - запустить транзакцию в методе [SetUp], откатить на [TearDown].

0 голосов
/ 02 ноября 2011

Существует инфраструктура модульного тестирования для PL / SQL utPLSQL , которую вы можете использовать для проведения всего тестирования в базе данных.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...