【发布时间】:2013-09-26 17:25:20
【问题描述】:
我正在使用现有的 Cucumber 和 Ruby 套件编写概念验证测试。我为之做这件事的公司有一个堆栈,其中包括 Java 和 DB2 等。
目前使用该数据库的测试会降低我们的测试数据库,由于许多原因,我无法擦除数据库并用映像版本替换它。
我对使用事务策略清理数据库的想法很感兴趣,我正在考虑使用 database_cleaner gem。
似乎 database_cleaner 需要一个 ORM 才能使用。此时我无权访问架构,ActiveRecord 无法使用我的凭据访问它所需的内容。
两个问题:
- ORM 是否总是需要访问架构?
- 您是否总是需要 ORM 来使用事务策略清理数据库?
如果有人知道可用于 ruby 1.8.7(还没有 jRuby)、windows、DB2 等的可用 gem,这也是一个奖励。
【问题讨论】:
-
你看过哪些 ORM? Sequel、DataMapper 和 Active Record 是 Ruby 的三大巨头。它们应该与操作系统无关,因为它们是纯 Ruby。他们是否可以连接或运行更多地取决于他们使用的驱动程序以及这些驱动程序是否在您的系统上编译。
-
内存中的 db 是否会为您的测试工作,而不是使用真正的 db2 数据库?当然你需要创建自己的测试数据。
-
@theTinMan 我试过 Sequel 和 Active Record。 Sequel 似乎也试图在幕后使用 Active Record。我认为我应该只是使用 Active Record...
-
@PeterSchuetze 管理层想要测试真实数据库的行为
标签: ruby orm db2 database-cleaner