4

私はgemfb_graphを使用しています。私はRailsを初めて使用し、rspecを使用してこのgemをモックする方法を見つけようとしています。(https://github.com/nov/fb_graph

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

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)

ありがとう!

4

1 に答える 1

2

私はgemからコードをモックしません。つまり、「所有していないタイプをモックしないでください」

ただし、そのコードをスタブしたい場合は、次のことを試してください。

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

メッセージの期待値を確認する必要がある場合は、を使用することと組み合わせて、#newおよびからモックを返すためにもう少し作業が必要になります。#fetch#should_receive

于 2013-09-25T17:46:40.097 に答える