我即将在 MVC .NET 中执行数据库迁移。我想知道如何对此进行单元测试。
例如,我想在这个问题中应用迁移:Rename a db column。我怎么能对此进行单元测试?
我的想法:
- 迁移所有现有迁移,除了我要测试的最新迁移
- 将数据添加到上下文
- 应用新迁移
- 测试数据还在
如果我的想法有意义,知道如何将这些应用到 MVC .NET 中吗?谢谢!
我即将在 MVC .NET 中执行数据库迁移。我想知道如何对此进行单元测试。
例如,我想在这个问题中应用迁移:Rename a db column。我怎么能对此进行单元测试?
我的想法:
如果我的想法有意义,知道如何将这些应用到 MVC .NET 中吗?谢谢!
用于集成测试。只是我粗略的想法。可能取决于您的环境 - 构建服务器、数据库服务器、部署制作,...
您必须始终与数据库具有相同(已知)的起点。您将手动创建它并将其提交到 VCS 并始终手动更新为M
-1 ( M
=migration)。或者只是假设所有迁移M
-1 之前都工作过(因为它已经过测试)并使用 ie 自动创建它migrate.exe
。然后您尝试执行您的步骤,然后测试,最好使用与 EF 不同的“通道”,数据在那里,列在那里等。在这里,通过良好的旧 ADO.NET 的纯 SQL 就足够了。因为它不需要多才多艺,您可以创建一些简单的帮助程序,这些帮助程序将使用众所周知的 Connection-Command-Reader 路径运行查询并将其作为原始数据返回,即简单IEnumerable
(我自己做了,通过dynamic
使超级简单。)。
我的建议是保持简单,不要花哨和聪明。只是为了支持测试。