Я подумал, что было бы неплохо создать базовый класс для тестовых приборов NUnit, который открывает TransactionScope на этапе SetUp, а затем откатывает транзакцию во время завершения.
Примерно так:
public abstract class TestFixtureBase
{
private TransactionScope _transaction;
[TestFixtureSetUp]
public void TestFixtureSetup()
{
_transaction = new TransactionScope();
}
[TestFixtureTearDown]
public void TestFixtureTearDown()
{
if (_transaction != null)
{
_transaction.Dispose();
}
}
}
Как вы думаете, это хорошая идея?
Очевидно, что база данных - это просто тестовая база данных, а не живая база данных, но она все равно будет раздражать, если заполнится ненужными данными из модульных тестов.
Что делают другие люди, когда проводят модульные тесты, требующие большого количества доступа к данным?