c# – 如何在EF4中回滚单元测试TearDown?

c# – 如何在EF4中回滚单元测试TearDown?,第1张

概述在我关于在EF4中回滚交易的研究中,似乎每个人都提到了 this blog post或提供了类似的解释.在我的场景中,我想在单元测试场景中执行此 *** 作,我想在我的单元测试上下文中回滚几乎我所做的一切,以防止更新数据库中的数据(是的,我们会增加计数器但是没关系).为了做到这一点,最好遵循以下计划吗?我错过了一些概念或其他任何重要的概念(除了我的SetupMyTest和PerformMyTest函数不会 在我关于在EF4中回滚交易的研究中,似乎每个人都提到了 this blog post或提供了类似的解释.在我的场景中,我想在单元测试场景中执行此 *** 作,我想在我的单元测试上下文中回滚几乎我所做的一切,以防止更新数据库中的数据(是的,我们会增加计数器但是没关系).为了做到这一点,最好遵循以下计划吗?我错过了一些概念或其他任何重要的概念(除了我的SetupMyTest和PerformMyTest函数不会真的存在这种方式)?
[TestMethod]public voID Foo{  using (var ts = new TransactionScope())  {    // Arrange    SetupMyTest(context);    // Act    PerformMyTest(context);    var numberOfChanges = context.SaveChanges(SaveOptions.AcceptAllChangesAfterSave);    // if there's an issue,chances are that an exception has been thrown by Now.    // Assert    Assert.IsTrue(numberOfChanges > 0,"Failed to _____");    // transaction will rollback because we do not ever call Complete on it  }}
解决方法 我们使用TransactionScope.
private TransactionScope transScope;    #region Additional test attributes    //    // Use Testinitialize to run code before running each test     [Testinitialize()]    public voID MyTestinitialize()    {        transScope = new TransactionScope();    }    // Use TestCleanup to run code after each test has run    [TestCleanup()]    public voID MyTestCleanup()    {        transScope.dispose();    }

这将回滚在任何测试中所做的任何更改.

总结

以上是内存溢出为你收集整理的c# – 如何在EF4中回滚单元测试TearDown?全部内容,希望文章能够帮你解决c# – 如何在EF4中回滚单元测试TearDown?所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/langs/1263809.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-06-08
下一篇 2022-06-08

发表评论

登录后才能评论

评论列表(0条)

保存