我正在寻找一种在我的开发环境中动态存根某些方法的可靠方法。一个示例用例是当我需要进行开发时,通常需要访问Facebook Graph API但我没有Internet访问权限。我希望能够将调用存根到fb_graph方法,因此看起来好像我已经过身份验证并拥有配置文件数据。理想情况下,我可以通过微小的配置更改打开或关闭存根。
有什么想法吗?我假设mocha可以处理这个问题吗?
答案 0 :(得分:1)
您还可以执行依赖注入等操作。
例如:
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
答案 1 :(得分:1)
您可以使用VCR gem,它将初始HTTP请求的结果记录到yml文件中,然后在后续的http请求中使用该yml文件的内容。然后可以将其配置为忽略VCR逻辑并始终发出HTTP请求(如果需要):