Exception: RSpec::Core::MultipleExceptionError
- Inherits:
-
StandardError
- Object
- StandardError
- RSpec::Core::MultipleExceptionError
- 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
-
#aggregation_block_label ⇒ nil
readonly
Provided only for interface compatibility with
RSpec::Expectations::MultipleExpectationsNotMetError
. -
#aggregation_metadata ⇒ Hash
readonly
Metadata used by RSpec for formatting purposes.
-
#all_exceptions ⇒ Array<Exception>
readonly
The list of failures and other exceptions, combined.
-
#failures ⇒ Array<Exception>
readonly
The list of failures.
-
#other_errors ⇒ Array<Exception>
readonly
The list of other errors.
Instance Method Summary collapse
-
#exception_count_description ⇒ void
return [String] A description of the failure/error counts.
-
#initialize(*exceptions) ⇒ MultipleExceptionError
constructor
A new instance of MultipleExceptionError.
-
#message ⇒ String
Combines all the exception messages into a single string.
-
#summary ⇒ String
A summary of the failure, including the block label and a count of failures.
Constructor Details
#initialize(*exceptions) ⇒ MultipleExceptionError
Returns a new instance of 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_label ⇒ nil (readonly)
Returns Provided only for interface compatibility with RSpec::Expectations::MultipleExpectationsNotMetError
.
472 473 474 |
# File 'lib/rspec/core/formatters/exception_presenter.rb', line 472 def aggregation_block_label @aggregation_block_label end |
#aggregation_metadata ⇒ Hash (readonly)
Returns Metadata used by RSpec for formatting purposes.
468 469 470 |
# File 'lib/rspec/core/formatters/exception_presenter.rb', line 468 def @aggregation_metadata end |
#all_exceptions ⇒ Array<Exception> (readonly)
Returns The list of failures and other exceptions, combined.
465 466 467 |
# File 'lib/rspec/core/formatters/exception_presenter.rb', line 465 def all_exceptions @all_exceptions end |
#failures ⇒ Array<Exception> (readonly)
Returns The list of failures.
459 460 461 |
# File 'lib/rspec/core/formatters/exception_presenter.rb', line 459 def failures @failures end |
#other_errors ⇒ Array<Exception> (readonly)
Returns The list of other errors.
462 463 464 |
# File 'lib/rspec/core/formatters/exception_presenter.rb', line 462 def other_errors @other_errors end |
Instance Method Details
#exception_count_description ⇒ void
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 |
#message ⇒ String
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 all_exceptions.map(&:message).join("\n\n") end |
#summary ⇒ String
Returns A summary of the failure, including the block label and a count of failures.
495 496 497 |
# File 'lib/rspec/core/formatters/exception_presenter.rb', line 495 def summary "Got #{exception_count_description}" end |