From 66dcc21383ef7c9804cc78e24bcd5fee72011d8d Mon Sep 17 00:00:00 2001 From: Michael Miller Date: Fri, 9 Nov 2018 11:20:30 -0700 Subject: [PATCH] Move helper methods and classes to their own directory --- spec/{ => helpers}/expectations_helper.cr | 0 spec/helpers/failing_example.cr | 22 +++++ spec/helpers/spy_example.cr | 37 ++++++++ spec/helpers/spy_sut.cr | 36 ++++++++ spec/spec_helper.cr | 100 +--------------------- 5 files changed, 96 insertions(+), 99 deletions(-) rename spec/{ => helpers}/expectations_helper.cr (100%) create mode 100644 spec/helpers/failing_example.cr create mode 100644 spec/helpers/spy_example.cr create mode 100644 spec/helpers/spy_sut.cr diff --git a/spec/expectations_helper.cr b/spec/helpers/expectations_helper.cr similarity index 100% rename from spec/expectations_helper.cr rename to spec/helpers/expectations_helper.cr diff --git a/spec/helpers/failing_example.cr b/spec/helpers/failing_example.cr new file mode 100644 index 0000000..ba17926 --- /dev/null +++ b/spec/helpers/failing_example.cr @@ -0,0 +1,22 @@ +# Example that always fails. +class FailingExample < Spectator::RunnableExample + # Dummy description. + def what + "FAIL" + end + + # Run the example that always fails. + private def run_instance + report_results(0, 1) + end + + # Creates a failing example. + def self.create + hooks = Spectator::ExampleHooks.empty + group = Spectator::RootExampleGroup.new(hooks) + values = Spectator::Internals::SampleValues.empty + new(group, values).tap do |example| + group.children = [example.as(Spectator::ExampleComponent)] + end + end +end diff --git a/spec/helpers/spy_example.cr b/spec/helpers/spy_example.cr new file mode 100644 index 0000000..988243b --- /dev/null +++ b/spec/helpers/spy_example.cr @@ -0,0 +1,37 @@ +# Example that invokes a closure when it is run. +# This is useful for capturing what's going on when an event is running. +class SpyExample < Spectator::RunnableExample + # Dummy description. + def what + "SPY" + end + + # Captures the sample values when the example is created. + def initialize(group, @sample_values) + super(group, @sample_values) + end + + # Sample values given to the example. + getter sample_values : Spectator::Internals::SampleValues + + setter block : Proc(Nil)? = nil + + # Method called by the framework to run the example code. + private def run_instance + if block = @block + block.call + end + end + + # Creates a spy example. + # The block passed to this method will be executed when the example runs. + def self.create(&block) + hooks = Spectator::ExampleHooks.empty + group = Spectator::RootExampleGroup.new(hooks) + values = Spectator::Internals::SampleValues.empty + new(group, values).tap do |example| + group.children = [example.as(Spectator::ExampleComponent)] + example.block = block + end + end +end diff --git a/spec/helpers/spy_sut.cr b/spec/helpers/spy_sut.cr new file mode 100644 index 0000000..bd2f08a --- /dev/null +++ b/spec/helpers/spy_sut.cr @@ -0,0 +1,36 @@ +# Example system to test that doubles as a spy. +# This class tracks calls made to it. +class SpySUT + # Number of times the `#==` method was called. + getter eq_call_count = 0 + + # Returns true and increments `#eq_call_count`. + def ==(other : T) forall T + @eq_call_count += 1 + true + end +end + +# Example that always succeeds. +class PassingExample < Spectator::RunnableExample + # Dummy description. + def what + "PASS" + end + + # Run the example that always passes. + # If this doesn't something broke. + private def run_instance + report_results(1, 0) + end + + # Creates a passing example. + def self.create + hooks = Spectator::ExampleHooks.empty + group = Spectator::RootExampleGroup.new(hooks) + values = Spectator::Internals::SampleValues.empty + new(group, values).tap do |example| + group.children = [example.as(Spectator::ExampleComponent)] + end + end +end diff --git a/spec/spec_helper.cr b/spec/spec_helper.cr index 5d98160..32978f5 100644 --- a/spec/spec_helper.cr +++ b/spec/spec_helper.cr @@ -1,104 +1,6 @@ require "spec" require "../src/spectator" -require "./expectations_helper" +require "./helpers/*" # Prevent Spectator from trying to run tests. Spectator.autorun = false - -# Example system to test that doubles as a spy. -# This class tracks calls made to it. -class SpySUT - # Number of times the `#==` method was called. - getter eq_call_count = 0 - - # Returns true and increments `#eq_call_count`. - def ==(other : T) forall T - @eq_call_count += 1 - true - end -end - -# Example that always succeeds. -class PassingExample < Spectator::RunnableExample - # Dummy description. - def what - "PASS" - end - - # Run the example that always passes. - # If this doesn't something broke. - private def run_instance - report_results(1, 0) - end - - # Creates a passing example. - def self.create - hooks = Spectator::ExampleHooks.empty - group = Spectator::RootExampleGroup.new(hooks) - values = Spectator::Internals::SampleValues.empty - new(group, values).tap do |example| - group.children = [example.as(Spectator::ExampleComponent)] - end - end -end - -# Example that always fails. -class FailingExample < Spectator::RunnableExample - # Dummy description. - def what - "FAIL" - end - - # Run the example that always fails. - private def run_instance - report_results(0, 1) - end - - # Creates a passing example. - def self.create - hooks = Spectator::ExampleHooks.empty - group = Spectator::RootExampleGroup.new(hooks) - values = Spectator::Internals::SampleValues.empty - new(group, values).tap do |example| - group.children = [example.as(Spectator::ExampleComponent)] - end - end -end - -# Example that invokes a closure when it is run. -# This is useful for capturing what's going on when an event is running. -class SpyExample < Spectator::RunnableExample - # Dummy description. - def what - "SPY" - end - - # Captures the sample values when the example is created. - def initialize(group, @sample_values) - super(group, @sample_values) - end - - # Sample values given to the example. - getter sample_values : Spectator::Internals::SampleValues - - setter block : Proc(Nil)? = nil - - # Method called by the framework to run the example code. - private def run_instance - if block = @block - block.call - end - end - - # Creates a spy example. - # The block passed to this method will be executed when the example runs. - def self.create(&block) - hooks = Spectator::ExampleHooks.empty - group = Spectator::RootExampleGroup.new(hooks) - values = Spectator::Internals::SampleValues.empty - new(group, values).tap do |example| - group.children = [example.as(Spectator::ExampleComponent)] - example.block = block - end - end -end