Когда я кодирую в .Net (C#), я использую NUnit и Rhino Mock для тестирования. Не сделали много кодирования базы данных (Store Procs). Как мы можем сделать TDD с кодировкой базы данных (Store Procs)?TDD с процедурами хранения
ответ
1) У вас есть фреймворк, который позволяет вам взять объект БД и сделать его копию. Это хорошо работает, когда у вас есть исходный код базы данных, включая определения таблиц, хранящиеся в файловой системе.
копия таблицы в базу данных temp. В том числе индексов и т.д ..
копия хранимой процедуры или триггера, который заменяет все имена DB Префикс таблицы/другой называемый ПЛов с временной базой данных
в состоянии предварительно заполнить таблицу с данными либо клонированными из существующую таблицу (с помощью фильтра) или подготовленный набор данных сохраняется, например, в качестве входного BCP файла
2) имеют структуру, которая загружает указанные таблицы испытаний с заданными данными испытаний, а затем клонирует все другие необходимые SP/код запуска
3) Имейте фреймворк, который выполняет клонированные хранимые процедуры и оценивает как возвращаемые из них результаты, так и данные, оставшиеся в таблице, в случае обновления данных.
Для того, чтобы придать ему аромат, нам понадобилось пару человеко-месяцев для разработки и развертывания TDD-системы, которая включала в себя все функции, перечисленные здесь в качестве небольшого подмножества.
Есть также некоторые коммер продукта доступны:
http://www.infoq.com/articles/tdd-dbpro-Foy
Кроме того, есть producs для конкретных БД движков, не уверен, какой из них вы используете:
Postgres: http://en.dklab.ru/lib/dklab_pgunit/
Дополнительное чтение:
MSDN http://msdn.microsoft.com/en-us/magazine/cc164243.aspx
http://tddbootcamp.com/2010/01/27/writing-tests-for-stored-procedures/
Если вы используете проект базы данных SSDT вы можете использовать переименованы трик в SSDT Unit Tests издеваться ваш код точки входа, как вы делаете в обычном C#. Не верный материал IoC, но он выполняет свою работу, пока не появится что-то лучшее.
Я написал пост об этом:
Вы также можете tSQLt для вашего развития, который поддерживает более чем DI SSDT самостоятельно.
Спасибо ДВК. В настоящее время мы используем Sybase. Я не мог найти рамки для Sybase. –
Мы находимся на Sybase, поэтому мы катались самостоятельно :) – DVK