我正在尋找一種可靠的方法來動態地在我的開發環境中存儲某些方法。一個示例用例是當我需要進行開發時,通常需要訪問Facebook Graph API,但我沒有訪問Internet。我希望能夠將調用存根到fb_graph方法,以便看起來好像我已通過身份驗證並擁有配置文件數據。理想情況下,我可以通過較小的配置更改打開或關閉存根。如何在Rails開發環境中存根?
任何想法?我假設摩卡咖啡可以解決這個問題嗎?
我正在尋找一種可靠的方法來動態地在我的開發環境中存儲某些方法。一個示例用例是當我需要進行開發時,通常需要訪問Facebook Graph API,但我沒有訪問Internet。我希望能夠將調用存根到fb_graph方法,以便看起來好像我已通過身份驗證並擁有配置文件數據。理想情況下,我可以通過較小的配置更改打開或關閉存根。如何在Rails開發環境中存根?
任何想法?我假設摩卡咖啡可以解決這個問題嗎?
您可以使用VCR的寶石,將最初的HTTP請求的結果記錄到一個YML文件,然後使用隨後的http請求上的該yml文件的內容。如果需要,它可以配置爲忽略VCR邏輯並始終發出HTTP請求:
摩卡當然可以做到這一點。但感覺有點奇怪。
你也可以做一些像依賴注入。
例如:
class User < AR::Base
def find_friends
Facebook.find_friends(facebook_id)
end
end
class Facebook
def self.find_friends(id)
# connect to Facebook here
end
end
class FakeFacebook
def self.find_friends(id)
# a fake implementation here
end
end
而且一個初始化內:
if Rails.env.development?
User::Facebook = FakeFacebook
end