如何在Rails 3上使用RR(双ruby)用块模拟方法



我正在使用考拉宝石使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

希望这能帮助大家节省时间。他们需要在文档

中添加这个小宝石

相关内容

  • 没有找到相关文章

最新更新