1

我正在创建一个 gem,我的类初始化方法将 ActiveRecord 模型作为参数。

这不是与 Rails 相关的宝石。

在我的单元测试(rspec)中,我应该如何创建一个连接到 mysql 的单元测试?

我觉得很奇怪我必须创建一个 database.yml 文件,然后将我的凭据等用于单元测试。

我应该改用 sqlite 吗?

如果有人可以提供一个我应该如何做到这一点的例子,那就太好了。

4

1 回答 1

1

我认为您不需要 ActiveRecord 对象,甚至中继您收到的对象继承自 ActiveRecord::Base。

相反,IMO 会更好的是使用模拟的 ActiveRecord::Base 对象。通过使用模拟对象而不是所需的原始对象,您可以模拟 active_record 对象的任何行为和状态,并且您的测试不需要数据库连接,这将使它们运行得更快。

您可以在这里阅读更多关于模拟(理论)的信息: http ://en.wikipedia.org/wiki/Mock_object

在此处练习(使用 rspec): http ://rubydoc.info/gems/rspec-mocks/frames

希望能帮助到你!

于 2012-09-28T20:42:34.190 回答