如何用respect -fire模拟活动记录查找器



我用respect -fire:

模拟一个活动记录查找器
user_class = fire_class_double('User').as_replaced_constant
user_class.should_receive(:find_by_email).with(email).and_return(user)

当我运行这个时,respect -fire抱怨User类没有实现find_by_email。

自述文件说可以通过子类化FireDouble来实现双类方法。然而,我不知道如何做到这一点。此外,似乎FireDouble类已经被FireDouble模块所取代。

任何想法?

这是不可能的,因为AR查找器实际上并没有以正常的方式定义为方法。列访问器也是如此。启用此功能的最简单方法是显式定义要使用的方法:

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

作为题外话,AR查找器已被弃用。

最新更新