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