Exception: RSpec::Core::MultipleExceptionError

Inherits:
StandardError
  • Object
show all
Defined in:
lib/rspec/core/formatters/exception_presenter.rb

Overview

Provides a single exception instance that provides access to multiple sub-exceptions. This is used in situations where a single individual spec has multiple exceptions, such as one in the it block and one in an after block.

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(*exceptions) ⇒ MultipleExceptionError


475
476
477
478
479
480
481
482
483
484
485
# File 'lib/rspec/core/formatters/exception_presenter.rb', line 475

def initialize(*exceptions)
  super()

  @failures                = []
  @other_errors            = []
  @all_exceptions          = []
  @aggregation_metadata    = { :hide_backtrace => true }
  @aggregation_block_label = nil

  exceptions.each { |e| add e }
end

Instance Attribute Details

#aggregation_block_labelnil (readonly)


472
473
474
# File 'lib/rspec/core/formatters/exception_presenter.rb', line 472

def aggregation_block_label
  @aggregation_block_label
end

#aggregation_metadataHash (readonly)


468
469
470
# File 'lib/rspec/core/formatters/exception_presenter.rb', line 468

def 
  @aggregation_metadata
end

#all_exceptionsArray<Exception> (readonly)


465
466
467
# File 'lib/rspec/core/formatters/exception_presenter.rb', line 465

def all_exceptions
  @all_exceptions
end

#failuresArray<Exception> (readonly)


459
460
461
# File 'lib/rspec/core/formatters/exception_presenter.rb', line 459

def failures
  @failures
end

#other_errorsArray<Exception> (readonly)


462
463
464
# File 'lib/rspec/core/formatters/exception_presenter.rb', line 462

def other_errors
  @other_errors
end

Instance Method Details

#exception_count_descriptionvoid

return [String] A description of the failure/error counts.


500
501
502
503
504
505
# File 'lib/rspec/core/formatters/exception_presenter.rb', line 500

def exception_count_description
  failure_count = Formatters::Helpers.pluralize(failures.size, "failure")
  return failure_count if other_errors.empty?
  error_count = Formatters::Helpers.pluralize(other_errors.size, "other error")
  "#{failure_count} and #{error_count}"
end

#messageString

Note:

RSpec does not actually use this -- instead it formats each exception individually.

Returns Combines all the exception messages into a single string.


490
491
492
# File 'lib/rspec/core/formatters/exception_presenter.rb', line 490

def message
  all_exceptions.map(&:message).join("\n\n")
end

#summaryString


495
496
497
# File 'lib/rspec/core/formatters/exception_presenter.rb', line 495

def summary
  "Got #{exception_count_description}"
end