我使用specflow为存储过程运行单元测试。我试图将所有内容包装在一个事务中,这样我就可以在每个测试用例之后回滚。但是,它仍然每次都会提交。
public class TestSortingSteps
{
private TransactionScope _transactionScope;
[BeforeScenario]
public void BeforeScenario()
{
_transactionScope = new TransactionScope();
}
[AfterScenario]
public void AfterScenario()
{
_transactionScope.Dispose();
}
[...]
}
任何地方都没有_transactionScope.Commit()
。
我调试了代码,发现它确实在每种情况下都运行_transactionScope.Dispose()
,但是每次测试后测试数据仍然显示在数据库中。
我正在使用dapper,并按如下方式插入我的测试数据:
public void insertQuery(){
[...]
using(IDbConnetion db = GetNewConnection()){
db.Open();
var result = db.Execute(insertSql, model)
}
}