0

我正在用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。

自述文件说可以通过继承 FireDouble 来加倍类方法。但是,我无法弄清楚如何做到这一点。此外,似乎 FireDouble 类已被FireDoublable模块取代。

有任何想法吗?

4

1 回答 1

0

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

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

顺便说一句,AR finder 已被弃用

于 2013-05-31T03:08:45.507 回答