I often see long before
blocks with lots of should_receive ... and_return
inside.
Remember that before
blocks are about setting up the "stage" (the context of your test), not declaring your expectations!
Also, they get run for every spec (every it
block).
So :
should_receive
s to stub
calls in before
blocks;it
blocks with should_receive
, if you actually care that the calls are made (watch out not to expect calls that are just an implementation details, only things that you need to see called)