集成测试存储库类
本文关键字:存储 集成测试 | 更新日期: 2023-09-27 17:54:45
是否可以更改集成测试的数据库(实体框架),以便我可以在数据库中创建测试记录,并在测试完成时丢弃所有内容?
现在我正在污染我用于本地开发的数据库。
PS:我意识到这一定是非常基本的东西,但由于某种原因,我找不到关于这方面的文档。
实现这一点的一种方法是将每个测试包装在TransactionScope块中,要么显式地针对每个测试,要么在设置方法中。如果没有提交范围,则会回滚更改。下面是一个例子:
找到我要找的东西了。简单地更改数据库名称比我希望的要容易。您可以通过简单地构造带有名称的DbContext来更改数据库名称。
new ApplicationContext("TestDatabase")
ApplicationContext的实现:
public class ApplicationContext : DbContext, IDbContext
{
public ApplicationContext()
{
}
public ApplicationContext(string databaseName) : base(databaseName)
{
}
}
运行测试我创建了一个单独的数据库,可以用于测试。