RSpec スタブはブロックも受け取れる
いつもの見慣れたスタブ
allow(user).to receive(:age).and_return(20)
このallow(user).to receive(:age)の部分、RSpec::Mocks::MessageExpectation のインスタンスはブロックも受け取れる
code: ruby
count = 0
allow(user).to receive(:status) do
count += 1
case count
when 1 then 'オンライン'
when 2 then 'お休み中'
else 'オフライン'
end
end
テストのデバッグ中にスタブが複数呼ばれるテストで何回呼ばれてるかもこれで調べたりできて便利
あと呼ぶたびに値を返したい場合はand_return