2013-05-31 35 views
0

我嘲笑的活動記錄器時,rspec-fire如何使用rspec-fire模擬活動記錄查找器?

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

當我運行此,rspec的火抱怨的用戶類沒有實現find_by_email。

readme表示可以通過子類化FireDouble來使類方法加倍。但是,我無法弄清楚如何做到這一點。此外,似乎FireDouble類已被替換爲FireDoublable模塊。

任何想法?

回答

0

這不是直接可能的,因爲AR發現者實際上並未以正常方式被定義爲方法。列訪問器的情況相同。啓用這個最簡單的方法是顯式定義要使用的方法:

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

順便說一句,AR finders have been deprecated

+0

謝謝!我認爲棄用只包括舊式發現者選項哈希,但不包含動態發現者。 – gsmendoza