Rename ExpectationRegistry to ExpectationReporter

Some initial implementation for the class.
This commit is contained in:
Michael Miller 2018-10-07 13:46:51 -06:00
parent e14babc014
commit 64a233a9e1
2 changed files with 28 additions and 26 deletions

View file

@ -1,26 +0,0 @@
module Spectator::Expectations
# Tracks the expectations and their outcomes in an example.
# A single instance of this class should be associated with one example.
class ExpectationRegistry
private getter? raise_on_failure : Bool
private def initialize(@raise_on_failure = true)
end
def report(result : Expectation::Result) : Nil
raise NotImplementedError.new("ExpectationRegistry#report")
end
def self.current : ExpectationRegistry
raise NotImplementedError.new("ExpectationRegistry.current")
end
def self.start(example : Example) : Nil
raise NotImplementedError.new("ExpectationRegistry.start")
end
def self.finish : ExpectationResults
raise NotImplementedError.new("ExpectationRegistry.finish")
end
end
end

View file

@ -0,0 +1,28 @@
module Spectator::Expectations
# Tracks the expectations and their outcomes in an example.
# A single instance of this class should be associated with one example.
class ExpectationReporter
# All results are stored in this array.
# The initial capacity is set to one,
# as that is the typical (and recommended)
# number of expectations per example.
@results = Array(Expectation::Result).new(1)
# Creates the reporter.
# When the `raise_on_failure` flag is set to true,
# which is the default, an exception will be raised
# on the first failure that is reported.
# To store failures and continue, set the flag to false.
def initialize(@raise_on_failure = true)
end
# Stores the outcome of an expectation.
# If the raise on failure flag is set to true,
# then this method will raise an exception
# when a failing result is given.
def report(result : Expectation::Result) : Nil
@results << result
raise ExpectationFailed.new(result) if result.failure? && @raise_on_failure
end
end
end