2012-08-10 58 views
0

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

例如,我想在此question中应用迁移:重命名数据库列。我怎么能单元测试这个?


我的想法:

  1. 迁移所有现有的迁移,除了我的最新的其中一个,我要测试
  2. 将数据添加到上下文
  3. 应用新的迁移
  4. 测试数据仍然存在

如果我的想法是有道理的,任何想法如何将这些应用到MVC .NET?谢谢!

+0

你所描述的不是单元测试,而是集成测试。你应该这样设计它。 – 2012-08-10 10:44:41

+0

公平点。您能否详细说明我如何以集成测试的方式进行设计? – Karan 2012-08-10 10:46:41

回答

1

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

您必须始终与数据库具有相同(已知)的起点。您可以手动创建并将其提交到VCS,并始终手动更新到M -1(M =迁移)。或者假设所有迁移M -1之前都有效(因为它已经过测试)并使用migrate.exe自动创建。然后,您尝试执行您的步骤,然后进行测试,最好使用不同于EF的“通道”,数据在那里,列在那里等。只需通过旧的ADO.NET进行纯SQL即可。由于它不需要多功能,您可以创建一些简单的帮助程序,使用众所周知的Connection-Command-Reader路径运行查询并将其作为原始数据返回,即简单的IEnumerable(我自己也这样做了,通过dynamic使超级简单。)。

我的建议就是保持它simple, nothing fancy and clever。这只是为了支持测试。

相关问题