首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >集成测试实体框架-只为PROD分离种子方法调用-

集成测试实体框架-只为PROD分离种子方法调用-
EN

Stack Overflow用户
提问于 2015-06-09 16:13:55
回答 1查看 874关注 0票数 14

我想集成测试我的存储库。

我希望在每个集成测试方法之前设置和插入测试数据。然后我想要执行我的存储库逻辑,然后通过从数据库返回正确的数据来断言逻辑工作。

我不想模拟和单元测试DbSet ;-)只是真正的集成测试。

我的问题是关于整个数据库的设置和清除测试数据。

我使用代码优先方法生成TestDatabaseProdDatabase。在ProdDatabase i种子实际数据中播放,然后在UI中使用它并检查正确的行为。TestDatabase只用于集成测试。

两个数据库都是从ONE上下文创建的。

当我更改实体的任何属性并运行集成测试时,也会调用来自我的DbContext的覆盖种子方法。但我不想在我的TestDatabase上出现这种情况。

我如何区分种子调用只发生在我的ProdDatabase?我的TestDatabase为每个测试生成自己的“种子”/setup数据?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2015-06-12 16:40:17

在每种情况下,您都可以在应用程序启动期间使用set a different IDatabaseInitializerDbMigrationsConfiguration (如果您使用MigrateDatabaseToLatestVersion作为初始化程序):

代码语言:javascript
复制
System.Data.Entity.Database.SetInitializer(new TestOrProdInitializer());

您甚至可以使用不同的configuration file settings为生产和测试设置数据库初始化程序:

如果需要在删除数据库后重新启动,还可以强制使用dbContext.Database.Initialize(true)进行初始化。

票数 6
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/30737484

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档