只读数据库的单元测试

时间:2012-06-12 08:20:01

标签: database unit-testing readonly

我们正在编写一个访问erp-solution数据库的应用程序。当然我们不允许写入数据库(database = readonly)。

在为访问/读取数据库的daos编写测试时会导致冲突。

生成testdata的最佳做法是什么?

任何建议都是适当的,提前谢谢 托比

更新: 也许重要的是,我们不会在erp的数据库中映射表的所有属性,因为我们不需要它们。一些未映射的列不为空。

3 个答案:

答案 0 :(得分:0)

过去我在事务中使用了所有NUnit测试,然后在测试完成后回滚。 begin tran insert .... select .... check unit test ... rollback tran。这是你的选择吗?

答案 1 :(得分:0)

使用非生产数据库。如果可能的话,使用内存数据库,使用DB Unit之类的东西来创建模式和站立数据,并在测试包完成时让实例自行崩溃。

答案 2 :(得分:0)

您应该创建两个数据库,一个包含实时数据,另一个包含testdata。然后,您可以准确测试此测试数据,还可以通过探测写入数据库来测试只读功能。如果失败了,你就成功了。

出于安全考虑,你总是应该有一个测试和一个高效的系统。如果写入测试失败并且您的所有生产数据都丢失了怎么办? 正如Jeff Watkins之前所说,你可以使用内存数据库,它用testdata动态填充,然后设置为只读,然后进行测试。最简单的方法是将另一个数据集作为普通数据库(但我不知道你在使用什么,所以你必须弄清楚自己最适合你的目的)。