我们正在编写一个访问erp-solution数据库的应用程序。当然我们不允许写入数据库(database = readonly)。
在为访问/读取数据库的daos编写测试时会导致冲突。
生成testdata的最佳做法是什么?
任何建议都是适当的,提前谢谢 托比
更新: 也许重要的是,我们不会在erp的数据库中映射表的所有属性,因为我们不需要它们。一些未映射的列不为空。
答案 0 :(得分:0)
过去我在事务中使用了所有NUnit测试,然后在测试完成后回滚。 begin tran insert .... select .... check unit test ... rollback tran。这是你的选择吗?
答案 1 :(得分:0)
使用非生产数据库。如果可能的话,使用内存数据库,使用DB Unit之类的东西来创建模式和站立数据,并在测试包完成时让实例自行崩溃。
答案 2 :(得分:0)
您应该创建两个数据库,一个包含实时数据,另一个包含testdata。然后,您可以准确测试此测试数据,还可以通过探测写入数据库来测试只读功能。如果失败了,你就成功了。
出于安全考虑,你总是应该有一个测试和一个高效的系统。如果写入测试失败并且您的所有生产数据都丢失了怎么办? 正如Jeff Watkins之前所说,你可以使用内存数据库,它用testdata动态填充,然后设置为只读,然后进行测试。最简单的方法是将另一个数据集作为普通数据库(但我不知道你在使用什么,所以你必须弄清楚自己最适合你的目的)。