Enable Mocks for tests

This commit is contained in:
Michael Miller 2024-05-16 21:01:50 -06:00
parent 48a8408930
commit 678f85eac1
No known key found for this signature in database
GPG key ID: AC78B32D30CE34A2
2 changed files with 12 additions and 5 deletions

View file

@ -68,8 +68,11 @@ module Spectator
# Silence default logger. # Silence default logger.
::Log.setup_from_env(default_level: :none) ::Log.setup_from_env(default_level: :none)
# Build the spec and run it. # Build the spec.
spec = DSL::Builder.build spec = DSL::Builder.build
# Run the spec with mocks enabled.
Mocks.enable
spec.run spec.run
rescue ex rescue ex
# Re-enable logger for fatal error. # Re-enable logger for fatal error.
@ -82,6 +85,8 @@ module Spectator
# So we display a helpful error that could be reported and return non-zero. # So we display a helpful error that could be reported and return non-zero.
Log.fatal(exception: ex) { "Spectator encountered an unexpected error" } Log.fatal(exception: ex) { "Spectator encountered an unexpected error" }
false false
ensure
Mocks.disable
end end
# Global configuration used by Spectator for running tests. # Global configuration used by Spectator for running tests.

View file

@ -136,11 +136,13 @@ module Spectator
# Yields to run the test code and returns information about the outcome. # Yields to run the test code and returns information about the outcome.
# Returns a tuple with the elapsed time and an error if one occurred (otherwise nil). # Returns a tuple with the elapsed time and an error if one occurred (otherwise nil).
private def capture(&) : Tuple(Time::Span, Exception?) private def capture(&) : Tuple(Time::Span, Exception?)
error = nil Mocks::Scope.push do
elapsed = Time.measure do error = nil
error = catch { yield } elapsed = Time.measure do
error = catch { yield }
end
{elapsed, error}
end end
{elapsed, error}
end end
# Yields to run a block of code and captures exceptions. # Yields to run a block of code and captures exceptions.