EF数据库/模型第一单元(集成)测试

时间:2013-06-04 00:19:07

标签: database entity-framework unit-testing integration-testing ef-database-first

我希望每个单元(集成)测试方法都为每个测试使用干净一致的数据库和特定测试数据。

请您提供一些代码示例/代码段,并告诉我对于EF 5数据库优先和模型优先的情况,以下问题的最佳做法是什么。

  1. 如何为每种测试方法创建数据库?
  2. 如何设置每种测试方法的测试数据?
  3. 如何删除每种测试方法的数据库?
  4. SSDT项目用于处理数据库架构,如何在每次测试运行时使用当前的SSDT架构?因此,测试总是针对当前的数据库开发版本执行。
  5. 请考虑以下有关上述问题的假设:

    1. 单元测试应在开发机器和服务器CI构建上本地执行。
    2. 每项测试可能有不同的测试数据。
    3. 应该避免手动定义的.mdf测试文件,因为有几个开发人员正在处理该产品,并且存在一个删除器覆盖其他开发人员之前可能检查过的.mdf文件更改的潜在风险 - >开发过程应该尽可能简单。
    4. 使用了SSDT,所以这可能是创建数据库的选项(可能不是一个很好的选项,因为我希望为每个测试创建数据库),而且我对SSDT可能性还没有深入的了解。
    5. 测试执行时间的良好表现会很好。
    6. 使用VS / TFS 2012。
    7. 使用SQL Server 2012。
    8. 应用程序是一个C#桌面应用程序。
    9. 模拟EF上下文等不是一种选择。
    10. 我希望你能指导我如何解决上面的4个问题。我不知道EF是否为我的挑战提供了一些功能(我认为只针对代码)或者是否必须通过执行SQL脚本或类似的东西来解决这些问题。

      谢谢!

0 个答案:

没有答案