2012-04-17 9 views
4

私は宝石のfb_graphを使用しています。私はレールが新しく、rspecを使ってこの宝石を模擬する方法を理解しようとしています。 (https://github.com/nov/fb_graphRails:fb_graphなどの宝石を模造する方法

私がテストしようとしていたコードは次のとおりです。

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) 

ありがとう:

facebook_user = FbGraph::User.new('me', :access_token => access_token['credentials']['token']).fetch 
return facebook_user.friends 

私は、次の線に沿って何かを考えていました!

+0

git://gist.github.com/752974.gitをご覧ください。 –

答えて

2

私は宝石のコードを模倣しません。すなわち、"don't mock types you don't own"です。あなたがメッセージの期待をチェックする必要がある場合は、それを組み合わせて、#new#fetchからモックを返すために、もう少し作業が必要になります

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

:あなたがそのコードをスタブにしたい場合

しかし、これを試してみてください#should_receiveを使用してください。

関連する問題