2014-08-27 5 views
2

Первый. Мы не используем ORM. И не будет использовать его в ближайшем будущем. (это не мое решение).
Как сделать тесты интеграции DAL менее хрупкими?

Мы создаем хранимые процедуры для нескольких случаев чтения/записи.
Большинство читающих SP предназначены для заполнения DTO, которые отправляются клиенту.

Каждый метод DAL обычно вызывает одиночный SP. Тест интеграции состоит из запуска скрипта вставки, а затем инициализации ожиданий в соответствии со сценарием, метода вызова, а затем проверки возвращаемого результата. То есть стандартный шаблон AAA.

Однако реорганизация даже небольшой схемы DB обычно ломает около сотни тестов. Подготовьте причину: тогда как DTO обычно нуждается в подмножестве столбцов. Вставка требует их всех. При этом каждый ыскшзе, который затрагивает реорганизованный стол, разбивается.

Я рассматриваю исправление связки сценариев каждый раз после рефакторинга какой-то работы обезьяны. Ищете способы повышения надежности тестов.

ответ

1

Вы можете попытаться написать обобщенные функции, которые готовят одну таблицу, и использовать это всегда вместо повторения инструкций подготовки к вашим тестам.

Также вы можете изучить шаблон T4 с взаимодействием с базой данных для создания операторов подготовки перед компиляцией тестов.

Generate from T4

+0

DTOS довольно часто состоят из данных из нескольких таблиц. Я также рассматриваю подход наличия одного скрипта для заполнения базы данных и последующего запуска всех прочитанных методов DAL. Последовательность выполнения здесь не имеет значения, поскольку состояние БД не изменяется. К сожалению, есть некоторые проблемы с генерируемыми БД значениями, которые иногда являются частью ожиданий теста. –

+0

Но для этих ситуаций отдельный скрипт ок =) –

+0

Решение по-прежнему может работать, если вы сделаете что-то вроде генератора T4 для каждой DTO вместо каждой таблицы. Идея - это предел мест, где происходят изменения, но иногда это может быть борьба за разделение всего в классах генераторов, но как только все ваши тестовые коды будут очень стабильными – Schwarzie2478

Смежные вопросы