Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/database/9.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Asp.net mvc 如何对数据库迁移进行单元测试?_Asp.net Mvc_Database_Entity Framework_Migration - Fatal编程技术网

Asp.net mvc 如何对数据库迁移进行单元测试?

Asp.net mvc 如何对数据库迁移进行单元测试?,asp.net-mvc,database,entity-framework,migration,Asp.net Mvc,Database,Entity Framework,Migration,我将在MVC.NET中执行数据库迁移。我想知道如何进行单元测试 例如,我想在下面应用迁移:重命名db列。我如何进行单元测试 我的想法: 迁移所有现有迁移,但我要测试的最新迁移除外 向上下文添加数据 应用新迁移 测试数据仍然存在 如果我的想法有道理,你知道如何将这些应用到MVC.NET吗?谢谢 用于集成测试。只是我的粗略想法。可能取决于您的环境—构建服务器、数据库服务器、部署决策 您必须始终使用相同(已知)的数据库起点。您可以手动创建并将其提交到VCS中,并始终手动更新到M-1(M=迁移)。或者

我将在MVC.NET中执行数据库迁移。我想知道如何进行单元测试

例如,我想在下面应用迁移:重命名db列。我如何进行单元测试


我的想法:

  • 迁移所有现有迁移,但我要测试的最新迁移除外
  • 向上下文添加数据
  • 应用新迁移
  • 测试数据仍然存在

  • 如果我的想法有道理,你知道如何将这些应用到MVC.NET吗?谢谢

    用于集成测试。只是我的粗略想法。可能取决于您的环境—构建服务器、数据库服务器、部署决策

    您必须始终使用相同(已知)的数据库起点。您可以手动创建并将其提交到VCS中,并始终手动更新到
    M
    -1(
    M
    =迁移)。或者假设所有的迁移
    M
    -1以前都工作过(因为它已经过测试),并使用
    migrate.exe
    自动创建它。然后,您尝试执行步骤,然后测试(最好使用不同于EF的“通道”),数据是否存在,列是否存在等等。通过好的旧ADO.NET实现纯SQL就足够了。因为它不需要多功能,所以您可以创建一些简单的帮助程序,使用众所周知的连接命令读取器路径运行查询,并将其作为原始数据返回,即simple
    IEnumerable
    (我自己做的,通过
    dynamic
    使其变得超级简单)


    我的建议就是保留它。它只是为了支持测试。

    您描述的不是单元测试,而是集成测试。你应该这样设计,说得好。你能详细说明一下我如何以集成测试的方式设计它吗?