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