gpt4 book ai didi

c# - 如何在 EF4 中回滚单元测试拆解?

转载 作者:太空狗 更新时间:2023-10-29 21:15:27 24 4
gpt4 key购买 nike

在我关于回滚 EF4 事务的研究中,似乎每个人都提到了 this blog post或提供类似的解释。在我的场景中,我想在单元测试场景中执行此操作,我想回滚我在单元测试上下文中所做的几乎所有事情,以防止更新数据库中的数据(是的,我们将增加计数器,但没关系).为了做到这一点,最好遵循以下计划吗?我是否遗漏了一些概念或其他与此相关的主要内容(除了我的 SetupMyTestPerformMyTest 函数将不会真正存在)?

[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 中回滚单元测试拆解?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2686454/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com