Почему вам нужно откатить изменения? Являются ли ваши модульные тесты обновляемыми данными в реальном времени? Если модульные тесты написаны правильно, вам не придется очищать после того, как ваши тесты изменились, потому что данные, которые они изменяют, должны быть изолированы от вашего теста.
Edit:
Похоже, вы создали набор данных для тестирования и хотите, чтобы убедиться, что набор данных восстанавливается в исходное состояние. Я предпочитаю практиковать настройку тестовых данных как часть теста, но я понимаю, что может быть сложно для сложных тестов.
Если это в источнике данных ADO.NET, вы можете начать транзакцию, а затем отменить эту транзакцию в конце теста. Например:
using (var transaction = db.BeginTransaction())
{
// Do tests here
}
// The transaction is rolled back when disposed
Edit 2:
Третий вариант, если у вас нет поддержки транзакций, чтобы иметь резервную копию ваших данных испытаний в месте, где он не получит затем, в конце теста, восстановите эту резервную копию.
Нет Я использую только тестовый набор данных. Если мой тест выполняет DELETE из тестовой базы данных, я действительно хочу откат тестового набора данных после того, как он успешно выполнил DELETE в его исходное состояние, чтобы использовать эти данные в другом тесте. –
Я вижу. Другой подход, который вы можете предпринять, - создать тестовые данные, необходимые для теста, в качестве настройки для этого теста. – Jacob