2012-04-17 2 views
4

보석 fb_graph를 사용하고 있습니다. 나는 레일을 처음 사용하고 rspec을 사용하여이 보석을 조롱하는 방법을 알아 내려고 노력 중이다. (https://github.com/nov/fb_graph)레일 : 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) 

감사합니다!

+0

git : //gist.github.com/752974.git을 찾으십시오. –

답변

2

나는 보석에서 코드를 조롱하지 않을 것이다. 즉, "don't mock types you don't own".

그러나 당신이 그 코드를 스텁하기를 원한다면,이 시도 : 당신이 메시지의 기대를 확인해야하는 경우

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

, 그것은 조합, #new#fetch에서 모의를 반환하는 조금 더 많은 작업이 필요합니다 #should_receive을 사용합니다.