是否可以更改集成测试的数据库(实体框架),以便我可以在我的数据库中创建测试记录并在测试完成后丢弃所有内容?
现在我正在污染用于本地开发的数据库。
PS:我意识到这一定是非常基本的东西,但由于某种原因,我无法找到这方面的文档。
是否可以更改集成测试的数据库(实体框架),以便我可以在我的数据库中创建测试记录并在测试完成后丢弃所有内容?
现在我正在污染用于本地开发的数据库。
PS:我意识到这一定是非常基本的东西,但由于某种原因,我无法找到这方面的文档。
实现此目的的一种方法是将每个测试包装在TransactionScope块中,明确地为每个测试或在 setup 方法中。如果未提交范围,则回滚更改。这是一个例子。
找到了我要找的东西。简单地更改数据库名称比我希望的要容易。您可以通过简单地使用名称构造 DbContext 来更改数据库名称。
new ApplicationContext("TestDatabase")
ApplicationContext的实现:
public class ApplicationContext : DbContext, IDbContext
{
public ApplicationContext()
{
}
public ApplicationContext(string databaseName) : base(databaseName)
{
}
}
运行我的测试,我创建了一个单独的数据库,可用于测试。