Цель проста - откатить данные, вставленные модульным тестом. Вот как это происходит. В модульном тесте вызывается метод, который создает новое соединение и вставляет некоторые данные. После этого модульный тест создает новое соединение и пытается найти то, что было вставлено, и подтвердить это. Я надеялся обернуть эти две вещи с помощью TransactionScope
, а не вызвать Complete
и увидеть откат вставленных данных. Этого не происходит. Я что-то делаю не так или просто упускаю суть?
using (new TransactionScope())
{
// call a method that inserts data
var target = new ....
target.DoStuffAndEndupWithDataInDb();
// Now assert what has been added.
using (var conn = new SqlConnection(connectionString))
using (var cmd = conn.CreateCommand())
{
// Just read the data from DB
cmd.CommandText = "SELECT...";
conn.Open();
int count = 0;
using (var rdr = cmd.ExecuteReader())
{
// Read records here
...
count++;
}
// Expecting, say, 3 records here
Assert.AreEqual(3, count);
}
}
РЕДАКТИРОВАТЬ: Я не думаю, что на моем компьютере был запущен и настроен DTC. Итак, я запустил службу и попытался настроить DTC, но получаю эту ошибку.