Ruby on rails Rails:如何模拟gems,例如fb_图形

Ruby on rails Rails:如何模拟gems,例如fb_图形,ruby-on-rails,unit-testing,rspec,mocking,fb-graph,Ruby On Rails,Unit Testing,Rspec,Mocking,Fb Graph,我正在使用gem fb_图。我是rails的新手,正在尝试找出如何使用rspec模拟这个gem。() 我尝试测试的代码是: facebook_user = FbGraph::User.new('me', :access_token => access_token['credentials']['token']).fetch return facebook_user.friends 我的想法大致如下: fb_graph = mock(FbGraph) user = mock(FbGraph

我正在使用gem fb_图。我是rails的新手,正在尝试找出如何使用rspec模拟这个gem。()

我尝试测试的代码是:

facebook_user = FbGraph::User.new('me', :access_token => access_token['credentials']['token']).fetch
return facebook_user.friends
我的想法大致如下:

fb_graph = mock(FbGraph)
user = mock(FbGraph::User)
fb_graph.should_receive(:new).should_return(user)
user.should_receive(:fetch).should_return(fb_graph_user)
user.should_receive(:friends)

谢谢

我不会模仿来自gem的代码,即

但是,如果要存根该代码,请尝试以下操作:

user = stub('fbgraph user', :friends => :foo_or_whatever_you_want)
FbGraph::User.stub_chain(:new,:fetch).and_return(user)

如果您需要检查消息期望值,则需要更多的工作才能从
#new
#fetch
返回模拟,并结合使用
#should#u receive

请查找git://gist.github.com/752974.git