我正在使用 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 获取块的方法?
最佳答案
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
希望能帮助某人节省一些时间。他们需要将这个小 gem 添加到文档中
关于ruby-on-rails-3 - 您如何在 Rails 3 上使用 RR(双 ruby )来模拟带有块的方法,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/8056523/