mirror of
https://gitea.invidious.io/iv-org/shard-spectator.git
synced 2024-08-15 00:53:35 +00:00
Implement expectation results
This commit is contained in:
parent
297701c463
commit
7b8f47f327
2 changed files with 54 additions and 1 deletions
|
@ -24,5 +24,11 @@ module Spectator::Expectations
|
|||
@results << result
|
||||
raise ExpectationFailed.new(result) if result.failure? && @raise_on_failure
|
||||
end
|
||||
|
||||
# Returns the reported expectation results from the example.
|
||||
# This should be run after the example has finished.
|
||||
def results : ExpectationResults
|
||||
ExpectationResults.new(@results.dup)
|
||||
end
|
||||
end
|
||||
end
|
||||
|
|
|
@ -1,6 +1,53 @@
|
|||
module Spectator::Expectations
|
||||
# Collection of results of expectations from an example.
|
||||
class ExpectationResults
|
||||
def initialize(@results : Enumerable(ExpectationResult))
|
||||
include Enumerable(Expectation::Result)
|
||||
|
||||
# Creates the collection.
|
||||
def initialize(@results : Array(Expectation::Result))
|
||||
end
|
||||
|
||||
# Iterates through all expectation results.
|
||||
def each
|
||||
@results.each do |result|
|
||||
yield result
|
||||
end
|
||||
end
|
||||
|
||||
# Returns a collection of only the successful expectation results.
|
||||
def successes : Enumerable(Expectation::Result)
|
||||
@results.select(&.successful?)
|
||||
end
|
||||
|
||||
# Iterates over only the successful expectation results.
|
||||
def each_success
|
||||
@results.each do |result|
|
||||
yield result if result.successful?
|
||||
end
|
||||
end
|
||||
|
||||
# Returns a collection of only the failed expectation results.
|
||||
def failures : Enumerables(Expectation::Result)
|
||||
@results.select(&.failure?)
|
||||
end
|
||||
|
||||
# Iterates over only the failed expectation results.
|
||||
def each_failure
|
||||
@results.each do |result|
|
||||
yield result if result.failure?
|
||||
end
|
||||
end
|
||||
|
||||
# Determines whether the example was successful
|
||||
# based on if all expectations were satisfied.
|
||||
def successful?
|
||||
@results.all?(&.successful?)
|
||||
end
|
||||
|
||||
# Determines whether the example failed
|
||||
# based on if any expectations were not satisfied.
|
||||
def failed?
|
||||
@results.any?(&.failure?)
|
||||
end
|
||||
end
|
||||
end
|
||||
|
|
Loading…
Reference in a new issue