Ruby on rails 如何在Rails开发环境中存根?
我正在寻找一种可靠的方法,在我的开发环境中动态地存根某些方法。一个示例用例是当我需要进行开发时,通常需要访问Facebook Graph API,但我无法访问互联网。我希望能够存根对fb_图方法的调用,这样看起来好像我已经过身份验证,并且拥有配置文件数据。理想情况下,我可以通过一个小的配置更改来打开或关闭存根Ruby on rails 如何在Rails开发环境中存根?,ruby-on-rails,ruby,Ruby On Rails,Ruby,我正在寻找一种可靠的方法,在我的开发环境中动态地存根某些方法。一个示例用例是当我需要进行开发时,通常需要访问Facebook Graph API,但我无法访问互联网。我希望能够存根对fb_图方法的调用,这样看起来好像我已经过身份验证,并且拥有配置文件数据。理想情况下,我可以通过一个小的配置更改来打开或关闭存根 有什么想法吗?我假设像摩卡咖啡这样的东西可以处理这个问题?摩卡咖啡当然可以。但感觉有点奇怪 你也可以做一些类似依赖注入的事情 例如: class User < AR::Base
有什么想法吗?我假设像摩卡咖啡这样的东西可以处理这个问题?摩卡咖啡当然可以。但感觉有点奇怪 你也可以做一些类似依赖注入的事情 例如:
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
您可以使用VCR gem,它将初始HTTP请求的结果记录到yml文件中,然后在后续HTTP请求中使用该yml文件的内容。然后,如果需要,可以将其配置为忽略VCR逻辑并始终发出HTTP请求:
if Rails.env.development?
User::Facebook = FakeFacebook
end