使用 EF6 进行单元测试后重建数据库

Posted

技术标签:

【中文标题】使用 EF6 进行单元测试后重建数据库【英文标题】:Reconstruct Database after Unit Test with EF6 【发布时间】:2014-02-17 17:44:06 【问题描述】:

我想在测试完成之前或之后删除现有数据库并重新创建它。这甚至可能吗?

我确实在上下文 obj 中看到了一些用于删除和 createifnotexist 的属性,但我不确定如何以及在何处放置它。

【问题讨论】:

查看这个问题[这是怎么做][1] [1]:***.com/questions/15162734/… 【参考方案1】:

创建一个数据库初始化程序,它总是删除并创建数据库,每次都用种子数据填充它。仅在您的单元测试类中使用该初始化程序。

或者更好的是,不要对 EF 进行单元测试,你不会得到任何东西。模拟你的 EF 后端,只测试你自己的代码。

【讨论】:

【参考方案2】:

如果您将数据库存储为文件 (mdb),您只需恢复原始文件即可。

你可以编写代码在你的 testinitialize 方法中创建和填充它

在这里http://msdn.microsoft.com/en-us/data/jj591621.aspx 寻找一个开始的地方

【讨论】:

以上是关于使用 EF6 进行单元测试后重建数据库的主要内容,如果未能解决你的问题,请参考以下文章

使用 Effort 和 SQL CE 并行进行单元测试失败

使用Moq进行单元测试 - 值不能为空

Nunit中如何进行事务性单元测试

在使用@Retention、@Transactional、@Inherited 注释服务进行测试后,TestNG 单元测试不起作用

使用 H2 数据库对 DAO 层进行单元测试

数据库单元测试框架?