allow(dbl).to receive(:foo) { do_something }
allow(dbl).to receive(:foo).with("args") { do_something }
allow(dbl).to receive(:foo).once { do_something }
allow(dbl).to receive(:foo).ordered { do_something }
do_something
で何かをすればいい。
block の戻り値がそのstub
の戻り値になるので、同時にand_return
は使えない。
参考: https://relishapp.com/rspec/rspec-mocks/v/3-8/docs/configuring-responses/block-implementation