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