invoke (Spec::Mocks::BaseExpectation)

    # File lib/spec/mocks/message_expectation.rb, line 96
          def invoke(*args, &block)
            if @expected_received_count == 0
              @failed_fast = true
              @actual_received_count += 1
              @error_generator.raise_expectation_error @sym, @expected_received_count, @actual_received_count, *args
            end

            @order_group.handle_order_constraint self

            begin
              Kernel::raise @exception_to_raise unless @exception_to_raise.nil?
              Kernel::throw @symbol_to_throw unless @symbol_to_throw.nil?

              if !@method_block.nil?
                default_return_val = invoke_method_block(*args)
              elsif @args_to_yield.size > 0
                default_return_val = invoke_with_yield(&block)
              else
                default_return_val = nil
              end

              if @consecutive
                return invoke_consecutive_return_block(*args, &block)
              elsif @return_block
                return invoke_return_block(*args, &block)
              else
                return default_return_val
              end
            ensure
              @actual_received_count += 1
            end
          end