如何使用rspec-fire模拟活动的记录查找器?

时间:2013-05-31 01:59:38

标签: ruby rspec

我正在使用rspec-fire嘲笑一个有效的记录查找器:

user_class = fire_class_double('User').as_replaced_constant
user_class.should_receive(:find_by_email).with(email).and_return(user)

当我运行它时,rspec-fire抱怨User类没有实现find_by_email。

readme表示可以通过继承FireDouble来加倍类方法。但是,我无法弄清楚如何做到这一点。此外,FireDouble类似乎已被FireDoublable模块替换。

有什么想法吗?

1 个答案:

答案 0 :(得分:0)

这不是直接可行的,因为AR查找器实际上并未以正常方式定义为方法。列访问器的相同交易。最简单的方法是明确定义要使用的方法:

class User < ActiveRecord::Base
  def self.find_by_email(*args); super; end
end

另外,AR finders have been deprecated