Add FinishedResult intermediary class

This commit is contained in:
Michael Miller 2018-12-10 14:07:14 -07:00
parent 9e004324c9
commit 4e0c821b8f
4 changed files with 29 additions and 25 deletions

View file

@ -2,24 +2,21 @@ require "./result"
module Spectator
# Outcome that indicates running an example was a failure.
class FailedResult < Result
class FailedResult < FinishedResult
# Error that occurred while running the example.
getter error : Exception
# The expectations that were run in the example.
getter expectations : Expectations::ExampleExpectations
# Length of time it took to run the example.
getter elapsed : Time::Span
# Creates a failed result.
# The `example` should refer to the example that was run
# and that this result is for.
# The `elapsed` argument is the length of time it took to run the example.
# The `expectations` references the expectations that were checked in the example.
# The `error` is the exception that was raised to cause the failure.
def initialize(example, @elapsed, @expectations, @error)
super(example)
def initialize(example, elapsed, @expectations, @error)
super(example, elapsed)
end
# Indicates that an example was run and it was successful.
@ -41,11 +38,5 @@ module Spectator
def errored?
false
end
# Indicates that an example was marked as pending.
# This will always be false for this type of result.
def pending?
false
end
end
end

View file

@ -0,0 +1,21 @@
module Spectator
# Abstract class for all results by examples
abstract class FinishedResult < Result
# Length of time it took to run the example.
getter elapsed : Time::Span
# Creates a successful result.
# The `example` should refer to the example that was run
# and that this result is for.
# The `elapsed` argument is the length of time it took to run the example.
def initialize(example, @elapsed)
super(example)
end
# Indicates that an example was marked as pending.
# This will always be false for this type of result.
def pending?
false
end
end
end

View file

@ -29,6 +29,7 @@ require "./test_results"
require "./runner"
require "./result"
require "./finished_result"
require "./successful_result"
require "./pending_result"
require "./failed_result"

View file

@ -1,21 +1,18 @@
require "./result"
require "./finished_result"
module Spectator
# Outcome that indicates running an example was successful.
class SuccessfulResult < Result
class SuccessfulResult < FinishedResult
# The expectations that were run in the example.
getter expectations : Expectations::ExampleExpectations
# Length of time it took to run the example.
getter elapsed : Time::Span
# Creates a successful result.
# The `example` should refer to the example that was run
# and that this result is for.
# The `elapsed` argument is the length of time it took to run the example.
# The `expectations` references the expectations that were checked in the example.
def initialize(example, @elapsed, @expectations)
super(example)
def initialize(example, elapsed, @expectations)
super(example, elapsed)
end
# Indicates that an example was run and it was successful.
@ -37,11 +34,5 @@ module Spectator
def errored?
false
end
# Indicates that an example was marked as pending.
# This will always be false for this type of result.
def pending?
false
end
end
end