加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

如何在C#中为数据库数据进行集成测试?

发布时间:2020-12-15 05:37:17 所属栏目:百科 来源:网络整理
导读:我最近一直在针对ASP.Net MVC控制器操作编写一些集成测试,并且由于难以设置为了运行测试而需要存在的测试数据而感到沮丧. 例如,我想测试控制器的“添加”,“编辑”和“删除”操作.我可以编写“添加”测试,但后来发现编写“编辑”测试我要么必须调用“添加”
我最近一直在针对ASP.Net MVC控制器操作编写一些集成测试,并且由于难以设置为了运行测试而需要存在的测试数据而感到沮丧.

例如,我想测试控制器的“添加”,“编辑”和“删除”操作.我可以编写“添加”测试,但后来发现编写“编辑”测试我要么必须调用“添加”测试的代码来创建一个记录,以便我可以编辑它,或者在测试类中做了很多设置,这两个设置都没有特别吸引人.

理想情况下,我想使用或开发集成测试框架,以便以可重用的方式为集成测试添加种子数据,以便安排/行为/断言测试的安排方面可以集中精力安排我特别需要安排的内容我的测试而不是关注自己安排一些参考数据,这些参考数据只与测试下的代码间接相关.

我碰巧使用NHibernate,但我相信任何数据播种功能都应该忽略它,并且能够直接操作数据库; ORM可能会改变,但我总是会使用SQL数据库.

我正在使用NUnit,因此设想挂钩测试/ testfixture setup / teardown(但我认为一个好的解决方案可能会转移到其他测试框架).

我在我的主项目中使用FluentMigrator来管理参考数据的模式和种子,因此它很好,但不是必须能够使用FluentMigrator框架在整个解决方案中采用一致的方法.

所以我的问题是,“你如何为C#中的集成测试种下数据库数据?”你直接执行SQL吗?你使用框架吗?

解决方法

您可以在Sql Server Compact上进行集成测试,您将有一个.sdf文件,您可以连接到它,将文件的路径作为连接字符串.这将更快,更容易设置和使用.

您的集成测试可能不需要数百万行数据.您可以将测试数据插入数据库并将其另存为TestDbOriginal.sdf.

当您运行测试时,只需复制一个’TestDbOriginal.sdf’并处理该副本,该副本已经有数据.如果要测试特定方案,则需要通过调用添加,删除,编辑等方法来准备数据.

当您进行生产或性能测试时,切换回原始服务器版本,无论是Sql Server 2008还是其他任何版本.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读