Asp.net mvc 如何对数据库迁移进行单元测试?
我将在MVC.NET中执行数据库迁移。我想知道如何进行单元测试 例如,我想在下面应用迁移:重命名db列。我如何进行单元测试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吗?谢谢 用于集成测试。只是我的粗略想法。可能取决于您的环境—构建服务器、数据库服务器、部署决策 您必须始终使用相同(已知)的数据库起点。您可以手动创建并将其提交到VCS中,并始终手动更新到
M
-1(M
=迁移)。或者假设所有的迁移M
-1以前都工作过(因为它已经过测试),并使用migrate.exe
自动创建它。然后,您尝试执行步骤,然后测试(最好使用不同于EF的“通道”),数据是否存在,列是否存在等等。通过好的旧ADO.NET实现纯SQL就足够了。因为它不需要多功能,所以您可以创建一些简单的帮助程序,使用众所周知的连接命令读取器路径运行查询,并将其作为原始数据返回,即simpleIEnumerable
(我自己做的,通过dynamic
使其变得超级简单)
我的建议就是保留它。它只是为了支持测试。您描述的不是单元测试,而是集成测试。你应该这样设计,说得好。你能详细说明一下我如何以集成测试的方式设计它吗?