Оффлайн-разработка баз данных и модульное тестирование с помощью SSDT Андрей Завадский MCSE, MCSD, MCT Содержание Концепция SQL Server Data Tools и обзор возможностей Оффлайн-разработка баз данных Создание проекта баз данных Создание объектов базы данных и написание T-SQL кода Настройки проекта Развертывание Скрипты для вставки данных при развертывании Модульное тестирование базы данных 2 Предмет тестирования Создание и выполнение модульного теста Отладка объектов базы данных Создание пользовательских условий теста 2 Концепция SQL Server Data Tools Фокусировка внимания на конечном результате вместо итераций по изменению базы данных Единая среда для разработчика: 3 Реализована на базе Visual Studio Возможность работы в существующих базах данных (как в SQL Server Management Studio) Проектный подход к написанию кода Отладка и тестирование Управление версиями 3 Обзор возможностей SQL Server Data Tools Разработка в подключенной базе данных Создание и изменение баз данных и объектов Просмотр и изменение данных в таблицах Развертывание пакетов DACPAC Оффлайн-разработка баз данных Создание проекта баз данных, создание объектов базы данных и написание T-SQL кода Управление версиями через интеграцию с Team Foundation Server Модульное тестирование Развертывание базы данных Дополнительные инструменты 4 Сравнение и синхронизация схемы базы данных и самих данных Запросы 4 Оффлайн-разработка баз данных Создание проекта баз данных Создание объектов базы данных Импорт объектов из существующей базы Создание «с нуля» Настройки проекта Целевая платформа (2005 – 2014, Azure), настройки базы данных Развертывание базы данных при отладке Анализ кода Развертывание проекта В подключенной базе данных В отсоединенной базе данных Скрипты для вставки данных при развертывании 5 5 Развертывание проекта Развертывание в подключенной базе данных Создание скрипта для развертывания (CREATE) Сравнение с целевой базой Создание скрипта изменений (ALTER) Выполнение скрипта изменений в целевой базе данных Развертывание в отсоединенной базе данных 6 Создание пакета DACPAC Импорт пакета DACPAC в целевой базе данных Сравнение DACPAC с целевой базой Создание скрипта изменений Выполнение скрипта изменений в целевой базе данных 6 Скрипты для вставки данных при развертывании Создание скриптов На основе существующих данных «С нуля» Скрипт «до развертывания» Скрипт «после развертывания» 7 7 Модульное тестирование базы данных Модульный тест Выполняется на очень маленьких частях кода Изолирован от других частей кода Должен быть повторяемым Дает ответ только на один вопрос Обычно создается разработчиками Ошибки и изоляция зависимостей Подчиненный модуль 8 Тестируемый модуль Тест 8 Что можно тестировать? Мета-данные Структура таблиц, типы и размерность полей Наличие объектов базы данных (например, индексы) Ограничения CHECK, DEFAULT PRIMARY KEY, FOREIGN KEY UNIQUE T-SQL код 9 Хранимые процедуры Функции Триггеры 9 Данные, которые можно протестировать Скалярные величины Нормальные значения Ошибки (некорректные значения) Очень большие значения NULL Табличные данные 10 Набор строк Пустой набор строк Очень большой набор строк Метаданные 10 Отладка в модульном тестировании Можно выполнить только отладку T-SQL кода, который тестируется (точка прерывания внутри хранимой процедуры, функции или триггера) Нельзя выполнить отладку кода модульного теста 11 11 Создание пользовательских условий теста https://msdn.microsoft.com/ru-ru/library/jj860449(v=vs.103).aspx 12 12 Вопросы? Спасибо за участие!