我们正在编写一个访问 erp 解决方案数据库的应用程序。当然我们是不允许写入数据库的(database = readonly)。
这会在为访问/读取数据库的 daos 编写测试时导致冲突。
生成测试数据的最佳实践是什么?
任何建议都会很重要,在此先感谢托比
更新:也许很重要,我们不会映射 erp 数据库中表的所有属性,因为我们不需要它们。一些未映射的列不为空。
我们正在编写一个访问 erp 解决方案数据库的应用程序。当然我们是不允许写入数据库的(database = readonly)。
这会在为访问/读取数据库的 daos 编写测试时导致冲突。
生成测试数据的最佳实践是什么?
任何建议都会很重要,在此先感谢托比
更新:也许很重要,我们不会映射 erp 数据库中表的所有属性,因为我们不需要它们。一些未映射的列不为空。
过去,我在一个事务中都使用了 NUnit 测试,然后在测试完成后回滚。begin tran insert .... select .... 检查单元测试 ... rollback tran。这是您的选择吗?
使用非生产数据库。如果可能的话,使用内存数据库,使用 DB Unit 之类的东西来创建模式和常备数据,并在测试包完成时让实例自行关闭。
您应该创建两个数据库,一个用于您的实时数据,一个用于测试数据。然后你可以精确地测试这个测试数据,你也可以通过探测写入数据库来测试只读特性。如果这失败了,你就成功了。
出于安全原因,您始终应该拥有一个测试和生产系统。如果写入测试失败并且您的所有生产数据都丢失了怎么办?正如 Jeff Watkins 之前所说,您可以使用内存 DB,它会动态填充测试数据,然后设置为只读,然后进行测试。最简单的方法仍然是将另一个数据集作为普通数据库(但我不知道你在使用什么,所以你必须自己弄清楚什么最适合你的目的)。