我用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查找器已被弃用。