中添加这个小宝石
我正在使用考拉宝石使facebook请求,我有以下代码:
@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?
K因此,在查看打开的门票后,我发现答案是块的第一个参数是RR::ProcFromBlock,这正是将传递给函数的块。下面是对代码的修改,以使其工作。
oauth_token= "Sometoken"
batch_api_mock = nil
graph_mock = mock(Koala::Facebook::API).new(oauth_token).mock!
#The block is passed in as a proc as the first argument to the returns block.
graph_mock.batch.returns do |proc_as_block|
proc_as_block.call
end
希望这能帮助大家节省时间。他们需要在文档