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

