假設在 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

熱門文章

AWS Ruby SDK 做 S3 multipart upload

在某次資料庫備份的過程中,在最後要對 S...

rails 動態時區實作

如何依照不同的條件,例如登入的使用者,來...

被 ActionController::InvalidAuthenticityToken 灌爆的 rollbar

使用免費版的 rollbar ,多半希望...