Weve обнаружил, что модульные тесты, написанные для нашего кода на С#/С++, действительно окупились. Но у нас все еще есть тысячи линий бизнес-логики в хранимых процедурах, которые только действительно проходят проверку в гневе, когда наш продукт выставляется большому числу пользователей.
Что еще хуже, так это то, что некоторые из этих хранимых процедур заканчиваются очень длинными из-за высокой производительности при передаче временных таблиц между SP. Это помешало нам сделать рефакторинг, чтобы сделать код более простым.
Мы предприняли несколько попыток построить единичные тесты вокруг некоторых наших хранимых процедур ключа (в первую очередь, тестирование производительности), но обнаружили, что настройка тестовых данных для этих тестов очень сложная. Например, мы копируем тестовые базы данных. В дополнение к этому, тесты в конечном итоге очень чувствительны к изменениям и даже наименьшее изменение хранимой процедуры. или таблица требует большого количества изменений в тестах. Таким образом, после того, как многие из них нарушают работу этих тестов базы данных с перерывами, нам просто пришлось вытащить их из процесса сборки.
Итак, основная часть моих вопросов: кто-нибудь когда-либо успешно записывал модульные тесты для своих хранимых процедур?
Вторая часть моих вопросов заключается в том, будет ли модульное тестирование легче/проще с linq?
Я думал, что вместо того, чтобы настраивать таблицы тестовых данных, вы могли бы просто создать коллекцию тестовых объектов и протестировать свой код linq в ситуации "linq to objects"? (Я совершенно новый для linq, поэтому не знаю, будет ли это вообще работать)