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