RSpec mock code block 的方法
2020-07-16
假設在 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