RSpec:在不访问数据库的情况下测试 AR 探测器
如何使用 RSpec 测试以下取景器?
def self.find_by_mbid(mbid)
super(mbid.downcase())
end
我认为唯一可能的方法是将其预先存储在数据库中,我想避免这种情况,因为这是一个单元测试。我不知道如何在这里返回模拟,因为 RSpec 几乎无法访问 super 。
有更好的方法吗?或者单元测试对于这类事情来说太低级了?
How would I test the following finder with RSpec?
def self.find_by_mbid(mbid)
super(mbid.downcase())
end
The only way I see that is possible would be storing it in the database beforehand, which I'd like to avoid, as this is a unit test. I don't see how to return a mock here, since super
is pretty much inaccessible to RSpec.
Is there a better way of doing this? Or are unit tests too low-level for this sort of thing?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
如果您愿意更改实现,您可以嘲笑这一点,但我建议使用数据库来指定查找器。
You could mock this if you're willing to change the implementation, but I recommend spec'ing finders with the database.