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.
::Log.setup_from_env(default_level: :none)
# Build the spec and run it.
# Build the spec.
spec = DSL::Builder.build
# Run the spec with mocks enabled.
Mocks.enable
spec.run
rescue ex
# 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.
Log.fatal(exception: ex) { "Spectator encountered an unexpected error" }
false
ensure
Mocks.disable
end
# 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.
# Returns a tuple with the elapsed time and an error if one occurred (otherwise nil).
private def capture(&) : Tuple(Time::Span, Exception?)
error = nil
elapsed = Time.measure do
error = catch { yield }
Mocks::Scope.push do
error = nil
elapsed = Time.measure do
error = catch { yield }
end
{elapsed, error}
end
{elapsed, error}
end
# Yields to run a block of code and captures exceptions.