Sch*_*999 5 .net c# sql transactionscope
目标很简单 - 通过单元测试插入回滚数据.这是怎么回事.在单元测试中,调用一个方法来创建新连接并插入一些数据.之后,单元测试会创建一个新连接,并尝试查找插入的内容并断言.我希望用这两个东西包装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);
}
}
Run Code Online (Sandbox Code Playgroud)
编辑:我认为我没有在我的机器上运行和配置DTC.所以我启动了该服务,并尝试配置DTC,但我收到此错误.

你在使用 MSTest 吗?那么你可以使用MsTestExtensions
你的单元测试需要派生MSTestExtensionsTestFixture并且你的测试需要有TestTransactionAttribute,它使用AOP来自动启动一个事务并回滚它。
| 归档时间: |
|
| 查看次数: |
1425 次 |
| 最近记录: |