We've created 3 expectations from `receive_message_chain(:to_a, :farce, :length => 3)`.  Calling `to_a` fulfils one of them.
We then call the first `verify_all`, which finds an unfulfilled expectation on `farce`, removes that expectation, and raises the MockExpectationError.
That's all in the first block, but after that we still have an expectation hanging around for `length`.   If we were to lose this second expectation block, then the overall spec would fail because `length` wasn't called.

I could replace the latter block with just `verify_all rescue nil` if you think that's clearer..?

Ideally you might call the `reset` method on the `length` expectation, but I couldn't find a clean way of actually getting to the expectation object to reset it.