C# 集成测试存储库类

C# 集成测试存储库类,c#,entity-framework,unit-testing,C#,Entity Framework,Unit Testing,是否可以更改集成测试的数据库(实体框架),以便我可以在数据库中创建测试记录,并在测试完成后丢弃所有内容 现在我正在污染我用于当地发展的数据库 PS:我意识到这一定是非常基本的东西,但出于某种原因,我找不到关于这方面的文档。实现这一点的一种方法是将每个测试包装在一个块中,无论是针对每个测试还是在设置方法中。如果未提交范围,则回滚更改。是一个例子。实现这一点的一种方法是将每个测试包装在一个块中,无论是针对每个测试还是在设置方法中。如果未提交范围,则回滚更改。就是一个例子。找到了我要找的东西。简单地更

是否可以更改集成测试的数据库(实体框架),以便我可以在数据库中创建测试记录,并在测试完成后丢弃所有内容

现在我正在污染我用于当地发展的数据库


PS:我意识到这一定是非常基本的东西,但出于某种原因,我找不到关于这方面的文档。

实现这一点的一种方法是将每个测试包装在一个块中,无论是针对每个测试还是在设置方法中。如果未提交范围,则回滚更改。是一个例子。

实现这一点的一种方法是将每个测试包装在一个块中,无论是针对每个测试还是在设置方法中。如果未提交范围,则回滚更改。就是一个例子。

找到了我要找的东西。简单地更改数据库名称比我希望的更容易。只需使用名称构造DbContext,就可以更改数据库名称

new ApplicationContext("TestDatabase")
ApplicationContext的实现:

public class ApplicationContext : DbContext, IDbContext
{
    public ApplicationContext()
    {
    }

    public ApplicationContext(string databaseName) : base(databaseName)
    {
    }
}

运行测试时,我创建了一个单独的数据库,可用于测试。

找到了我要查找的内容。简单地更改数据库名称比我希望的更容易。只需使用名称构造DbContext,就可以更改数据库名称

new ApplicationContext("TestDatabase")
ApplicationContext的实现:

public class ApplicationContext : DbContext, IDbContext
{
    public ApplicationContext()
    {
    }

    public ApplicationContext(string databaseName) : base(databaseName)
    {
    }
}

运行测试时,我创建了一个单独的数据库,可用于测试。

这在很大程度上取决于应用程序当前的设置方式。EF上下文的allow连接字符串位于构造函数中。。但是你的上下文是如何创建的呢?如果您使用的是DI/IoC框架,那么来回切换将非常容易。这在很大程度上取决于您的应用程序当前的设置方式。EF上下文的allow连接字符串位于构造函数中。。但是你的上下文是如何创建的呢?如果您使用的是DI/IoC框架,那么来回切换将非常容易。。