Для полноты здесь приведена ссылка на фреймворк tSQLt , на который ссылается @DavidAtkinson. На первый взгляд это кажется многообещающим, в том числе предлагает простые способы создания поддельных таблиц на основе реальных, перемещение ограничений на поддельные таблицы и т. Д.
Ранее я использовал TST и был очень доволен этим. Похоже, что он активно не развивается.
Это было давно, но я думаю, что причина, по которой я использовал TST вместо tSQLt, заключается в том, что TST имеет свою собственную базу данных, тогда как tSQLt устанавливается в тестируемую базу данных. Мне понравилась идея разделения тестов и баз данных разработки. В моем случае у меня была одна база данных с платформой TST, одна с моими собственными модульными тестами и (пустая) база данных разработки, которая тестировалась.