Если вы не можете делать то, что предлагали другие, потому что вы на самом деле тестируете хранимые процедуры, делайте то, что ожидаете, тогда я думаю, что ваши коллеги ссылаются на использование базы данных в памяти.
Когда люди говорят о тестовых базах данных в памяти, они обычно ссылаются на SQLite. Они создают базу данных в памяти в начале теста и уничтожают ее в конце. К сожалению, SQLite не поддерживает хранимые процедуры, так что это вам не поможет.
Я хотел бы предложить вам написать специальные интеграционные тесты для хранимых процедур и вставить / удалить данные, как вы это делаете в настоящее время. Обратите внимание, что проще заключить тест в транзакцию, которую затем откатить. Вы также можете использовать функции «модульного тестирования» базы данных в Visual Studio для тестирования sprocs, если у вас есть такая возможность.
Для остальной части вашего кода смоделируйте ваш DAL в соответствии с предложением @Ben и протестируйте свою бизнес-логику как обычный модульный тест. Однако, учитывая сложность того, что ваш DAL является статическим классом, вам придется проделать некоторую работу, чтобы обернуть DAL и начать использовать класс-оболочку во всем приложении - немного похоже на то, как ASP.NET MVC работает с HttpContext. *