我正在创建一个 gem,我的类初始化方法将 ActiveRecord 模型作为参数。
这不是与轨道相关的宝石。
在我的单元测试(rspec)中,我应该如何创建一个连接到mysql的单元测试?
我觉得很奇怪,我必须创建一个 database.yml 文件,然后将我的凭据等用于单元测试。
我应该改用 sqlite 吗?
如果有人能提供一个例子来说明我应该如何做到这一点,那就太好了。
我认为你不需要ActiveRecord对象,甚至中继你收到的对象继承自ActiveRecord::Base。
相反,IMO更好的是使用模拟的ActiveRecord::Base对象。通过使用模拟对象,而不是所需的原始对象,您可以模拟active_record对象的任何行为和状态,并且您的测试不需要数据库连接,这将使它们运行得更快。
你可以在这里阅读更多关于嘲笑(理论)的信息:http://en.wikipedia.org/wiki/Mock_object
练习(使用 rspec)在这里:http://rubydoc.info/gems/rspec-mocks/frames
希望对您有所帮助!