3

我正在使用 Koala gem 发出 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 获取块的方法?

4

1 回答 1

5

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

希望这可以帮助某人节省一些时间。他们需要将这个小宝石添加到文档中

于 2011-11-10T19:44:03.277 回答