3
にRR(ダブルルビー)を使用してブロックを持つメソッドを模擬するにはどうすればよい私はFacebookの要求を行うためにコアラの宝石を使用していますが、私は次のコードを持っている:私はモックとしたいあなたがRailsの3
@graph = Koala::Facebook::API.new(oauth_token)
@graph.batch do |batch_api|
#... do stuff here
end
を私たちがそこでやっていることをシミュレートするバッチコール。
私はRRに何があるのですか?
oauth_token= "Sometoken"
batch_api_mock = nil
graph_mock = mock(Koala::Facebook::API).new(oauth_token).mock!
graph_mock.batch.returns do
yield batch_api_mock if block_given?
end
問題はblock_givenですか?私のソースにブロックが渡されていても、falseを返します。
RRを使用してブロックを取得する方法はどうすればよいですか?
私はあなたがreadmeパッチを見ただけでgraph_mock.batch.yields – Sebastian
を使うことができます:それは 'batch.returns'か' batch.yeilds'ですか?また、これはRRの 'new_instance_of'を使って新しいインスタンスに二倍にバインドするのですか? – Hedgehog
この方法は私のために働いていません。詳細はこちら:http://stackoverflow.com/questions/15030235/yield-to-a-block-using-rr – Raphael