RSpec:测试AR查找器而不会访问数据库

Mat*_*een 4 ruby bdd rspec

我如何使用RSpec测试以下查找程序?

def self.find_by_mbid(mbid)
  super(mbid.downcase())
end
Run Code Online (Sandbox Code Playgroud)

我认为可能的唯一方法是预先将它存储在数据库中,我想避免,因为这是一个单元测试.我不知道如何在这里返回一个模拟,因为superRSpec几乎无法访问.

有没有更好的方法呢?或者单元测试对于这类事情来说太低级了?

Dav*_*sky 5

如果你愿意改变实现,你可以嘲笑这个,但我建议使用数据库对发现者进行规范.