Зачем вам разговаривать с базой данных во время юнит-тестов?Это превращает ваш юнит-тест в интеграционные тесты по умолчанию.Вместо этого создайте обертки для всех соединений с базой данных и вставьте их в тупик во время юнит-тестов.Тогда вам не нужно беспокоиться о состоянии базы данных до и после.
Теперь, если вы не готовы к такому уровню рефакторинга: проблема с транзакциями в том, что вам нужно открытое соединение.Таким образом, если ваш метод, предназначенный для тестирования, обрабатывает все коммуникации сам по себе, действительно сложно внедрить транзакцию, которую вы можете создать при установке, и выполнить откат при разрыве.