假設在 Abc class 定義了有 code block 的 method foo,想測試 foo 的 code block ,但需要跳過 foo 的執行:

class Abc
  def foo(x, y)
    ...
    yield(m, n)
    ...
  end
  
  def bar
    foo(x, y) do |m, n|
      # 想要測試這裡面的執行結果
    end
  end
end

RSpec 如下

allow(Abc).to receive(:foo) do |x, y, &block|
  ....
  block.call(m, n)
  ....
end
Abc.new.bar