A couple years ago, I had just started refactoring a legacy codebase by adding integration tests and was manually rolling back the database changes with several lines of handwritten sql deletes… (sorry). At Iowa Code Camp, I went to a Lee Brandt demo and looking at Lee’s demo code, I saw him using a transaction for the rollbacks and I hung my head in shame.
Try it like this:
using NUnit.Framework;
using System.Transactions;
namespace ProjectName.Tests.Integration
{
[TestFixture]
public class TestClass
{
private TransactionScope _transactionScope;
[SetUp]
public void SetUp()
{
_transactionScope = new TransactionScope(TransactionScopeOption.RequiresNew);
}
//...Test some stuff, insert records, update records, etc...
[TearDown]
public void TearDown()
{
_transactionScope.Dispose();
}
}
}
Happy Testing,
Jim