我即将在MVC .NET中执行数据库迁移。我想知道如何单元测试这个。如何对数据库迁移进行单元测试?
例如,我想在此question中应用迁移:重命名数据库列。我怎么能单元测试这个?
我的想法:
- 迁移所有现有的迁移,除了我的最新的其中一个,我要测试
- 将数据添加到上下文
- 应用新的迁移
- 测试数据仍然存在
如果我的想法是有道理的,任何想法如何将这些应用到MVC .NET?谢谢!
我即将在MVC .NET中执行数据库迁移。我想知道如何单元测试这个。如何对数据库迁移进行单元测试?
例如,我想在此question中应用迁移:重命名数据库列。我怎么能单元测试这个?
我的想法:
如果我的想法是有道理的,任何想法如何将这些应用到MVC .NET?谢谢!
用于集成测试。只是我粗略的想法。可能取决于您的环境 - 构建服务器,数据库服务器,部署制作,...
您必须始终与数据库具有相同(已知)的起点。您可以手动创建并将其提交到VCS,并始终手动更新到M
-1(M
=迁移)。或者假设所有迁移M
-1之前都有效(因为它已经过测试)并使用migrate.exe
自动创建。然后,您尝试执行您的步骤,然后进行测试,最好使用不同于EF的“通道”,数据在那里,列在那里等。只需通过旧的ADO.NET进行纯SQL即可。由于它不需要多功能,您可以创建一些简单的帮助程序,使用众所周知的Connection-Command-Reader路径运行查询并将其作为原始数据返回,即简单的IEnumerable
(我自己也这样做了,通过dynamic
使超级简单。)。
我的建议就是保持它simple, nothing fancy and clever。这只是为了支持测试。
你所描述的不是单元测试,而是集成测试。你应该这样设计它。 – 2012-08-10 10:44:41
公平点。您能否详细说明我如何以集成测试的方式进行设计? – Karan 2012-08-10 10:46:41