rspec 1.0.8 → 1.1.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- data/CHANGES +122 -2
- data/README +10 -9
- data/Rakefile +22 -49
- data/TODO +2 -0
- data/bin/spec +1 -1
- data/bin/spec_translator +8 -8
- data/examples/{auto_spec_description_example.rb → pure/autogenerated_docstrings_example.rb} +0 -0
- data/examples/{before_and_after_example.rb → pure/before_and_after_example.rb} +1 -0
- data/examples/{behave_as_example.rb → pure/behave_as_example.rb} +0 -0
- data/examples/{custom_expectation_matchers.rb → pure/custom_expectation_matchers.rb} +0 -0
- data/examples/{custom_formatter.rb → pure/custom_formatter.rb} +1 -0
- data/examples/{dynamic_spec.rb → pure/dynamic_spec.rb} +0 -0
- data/examples/{file_accessor.rb → pure/file_accessor.rb} +1 -0
- data/examples/{file_accessor_spec.rb → pure/file_accessor_spec.rb} +0 -0
- data/examples/{greeter_spec.rb → pure/greeter_spec.rb} +1 -0
- data/examples/{helper_method_example.rb → pure/helper_method_example.rb} +0 -0
- data/examples/{io_processor.rb → pure/io_processor.rb} +0 -0
- data/examples/{io_processor_spec.rb → pure/io_processor_spec.rb} +0 -0
- data/examples/{legacy_spec.rb → pure/legacy_spec.rb} +1 -0
- data/examples/{mocking_example.rb → pure/mocking_example.rb} +0 -0
- data/examples/pure/multi_threaded_behaviour_runner.rb +28 -0
- data/examples/pure/nested_classes_example.rb +36 -0
- data/examples/{partial_mock_example.rb → pure/partial_mock_example.rb} +0 -0
- data/examples/{pending_example.rb → pure/pending_example.rb} +0 -0
- data/examples/{predicate_example.rb → pure/predicate_example.rb} +0 -0
- data/examples/{priority.txt → pure/priority.txt} +0 -0
- data/examples/pure/shared_example_group_example.rb +66 -0
- data/examples/pure/shared_stack_examples.rb +38 -0
- data/examples/pure/spec_helper.rb +3 -0
- data/examples/{stack.rb → pure/stack.rb} +0 -0
- data/examples/{stack_spec.rb → pure/stack_spec.rb} +1 -35
- data/examples/pure/stack_spec_with_nested_example_groups.rb +67 -0
- data/examples/{stubbing_example.rb → pure/stubbing_example.rb} +0 -0
- data/examples/stories/adder.rb +13 -0
- data/examples/stories/addition +34 -0
- data/examples/stories/addition.rb +9 -0
- data/examples/stories/calculator.rb +65 -0
- data/examples/stories/game-of-life/README.txt +21 -0
- data/examples/stories/game-of-life/behaviour/everything.rb +6 -0
- data/examples/stories/game-of-life/behaviour/examples/examples.rb +3 -0
- data/examples/stories/game-of-life/behaviour/examples/game_behaviour.rb +35 -0
- data/examples/stories/game-of-life/behaviour/examples/grid_behaviour.rb +66 -0
- data/examples/stories/game-of-life/behaviour/stories/CellsWithLessThanTwoNeighboursDie.story +21 -0
- data/examples/stories/game-of-life/behaviour/stories/CellsWithMoreThanThreeNeighboursDie.story +21 -0
- data/examples/stories/game-of-life/behaviour/stories/EmptySpacesWithThreeNeighboursCreateACell.story +42 -0
- data/examples/stories/game-of-life/behaviour/stories/ICanCreateACell.story +42 -0
- data/examples/stories/game-of-life/behaviour/stories/ICanKillACell.story +17 -0
- data/examples/stories/game-of-life/behaviour/stories/TheGridWraps.story +53 -0
- data/examples/stories/game-of-life/behaviour/stories/create_a_cell.rb +52 -0
- data/examples/stories/game-of-life/behaviour/stories/helper.rb +6 -0
- data/examples/stories/game-of-life/behaviour/stories/kill_a_cell.rb +26 -0
- data/examples/stories/game-of-life/behaviour/stories/steps.rb +5 -0
- data/examples/stories/game-of-life/behaviour/stories/stories.rb +3 -0
- data/examples/stories/game-of-life/behaviour/stories/stories.txt +22 -0
- data/examples/stories/game-of-life/life.rb +3 -0
- data/examples/stories/game-of-life/life/game.rb +23 -0
- data/examples/stories/game-of-life/life/grid.rb +43 -0
- data/examples/stories/helper.rb +9 -0
- data/examples/stories/steps/addition_steps.rb +18 -0
- data/lib/autotest/rspec.rb +1 -2
- data/lib/spec.rb +30 -6
- data/lib/spec/example.rb +12 -0
- data/lib/spec/{dsl → example}/configuration.rb +48 -39
- data/lib/spec/{dsl → example}/errors.rb +2 -2
- data/lib/spec/example/example_group.rb +16 -0
- data/lib/spec/example/example_group_factory.rb +62 -0
- data/lib/spec/example/example_group_methods.rb +412 -0
- data/lib/spec/example/example_matcher.rb +42 -0
- data/lib/spec/example/example_methods.rb +101 -0
- data/lib/spec/example/module_reopening_fix.rb +21 -0
- data/lib/spec/example/pending.rb +18 -0
- data/lib/spec/example/shared_example_group.rb +58 -0
- data/lib/spec/expectations/differs/default.rb +15 -10
- data/lib/spec/expectations/errors.rb +7 -1
- data/lib/spec/expectations/extensions/object.rb +12 -7
- data/lib/spec/expectations/handler.rb +13 -4
- data/lib/spec/extensions.rb +2 -0
- data/lib/spec/extensions/class.rb +24 -0
- data/lib/spec/extensions/main.rb +54 -0
- data/lib/spec/extensions/object.rb +5 -1
- data/lib/spec/interop/test.rb +10 -0
- data/lib/spec/interop/test/unit/autorunner.rb +6 -0
- data/lib/spec/interop/test/unit/testcase.rb +61 -0
- data/lib/spec/interop/test/unit/testresult.rb +6 -0
- data/lib/spec/interop/test/unit/testsuite_adapter.rb +34 -0
- data/lib/spec/interop/test/unit/ui/console/testrunner.rb +60 -0
- data/lib/spec/matchers.rb +11 -15
- data/lib/spec/matchers/be.rb +23 -6
- data/lib/spec/matchers/change.rb +25 -1
- data/lib/spec/matchers/exist.rb +17 -0
- data/lib/spec/matchers/operator_matcher.rb +1 -0
- data/lib/spec/matchers/simple_matcher.rb +29 -0
- data/lib/spec/matchers/throw_symbol.rb +2 -0
- data/lib/spec/mocks.rb +5 -2
- data/lib/spec/mocks/argument_expectation.rb +1 -1
- data/lib/spec/mocks/message_expectation.rb +62 -44
- data/lib/spec/mocks/methods.rb +2 -2
- data/lib/spec/mocks/mock.rb +24 -3
- data/lib/spec/mocks/proxy.rb +26 -23
- data/lib/spec/mocks/space.rb +1 -1
- data/lib/spec/mocks/spec_methods.rb +20 -12
- data/lib/spec/rake/spectask.rb +19 -1
- data/lib/spec/rake/verify_rcov.rb +1 -1
- data/lib/spec/runner.rb +33 -10
- data/lib/spec/runner/backtrace_tweaker.rb +3 -3
- data/lib/spec/runner/class_and_arguments_parser.rb +16 -0
- data/lib/spec/runner/command_line.rb +18 -12
- data/lib/spec/runner/drb_command_line.rb +4 -5
- data/lib/spec/runner/example_group_runner.rb +59 -0
- data/lib/spec/runner/formatter/base_formatter.rb +10 -8
- data/lib/spec/runner/formatter/base_text_formatter.rb +18 -18
- data/lib/spec/runner/formatter/failing_example_groups_formatter.rb +31 -0
- data/lib/spec/runner/formatter/failing_examples_formatter.rb +3 -5
- data/lib/spec/runner/formatter/html_formatter.rb +37 -27
- data/lib/spec/runner/formatter/profile_formatter.rb +47 -0
- data/lib/spec/runner/formatter/progress_bar_formatter.rb +3 -4
- data/lib/spec/runner/formatter/specdoc_formatter.rb +27 -13
- data/lib/spec/runner/formatter/story/html_formatter.rb +124 -0
- data/lib/spec/runner/formatter/story/plain_text_formatter.rb +123 -0
- data/lib/spec/runner/formatter/text_mate_formatter.rb +16 -0
- data/lib/spec/runner/heckle_runner.rb +9 -9
- data/lib/spec/runner/option_parser.rb +140 -138
- data/lib/spec/runner/options.rb +168 -90
- data/lib/spec/runner/reporter.rb +58 -40
- data/lib/spec/runner/spec_parser.rb +11 -8
- data/lib/spec/story.rb +10 -0
- data/lib/spec/story/extensions.rb +1 -0
- data/lib/spec/story/extensions/main.rb +86 -0
- data/lib/spec/story/given_scenario.rb +14 -0
- data/lib/spec/story/runner.rb +58 -0
- data/lib/spec/story/runner/plain_text_story_runner.rb +48 -0
- data/lib/spec/story/runner/scenario_collector.rb +18 -0
- data/lib/spec/story/runner/scenario_runner.rb +46 -0
- data/lib/spec/story/runner/story_mediator.rb +123 -0
- data/lib/spec/story/runner/story_parser.rb +227 -0
- data/lib/spec/story/runner/story_runner.rb +67 -0
- data/lib/spec/story/scenario.rb +14 -0
- data/lib/spec/story/step.rb +48 -0
- data/lib/spec/story/step_group.rb +89 -0
- data/lib/spec/story/step_mother.rb +37 -0
- data/lib/spec/story/story.rb +42 -0
- data/lib/spec/story/world.rb +124 -0
- data/lib/spec/version.rb +4 -5
- data/plugins/mock_frameworks/rspec.rb +1 -1
- data/spec/autotest/rspec_spec.rb +13 -7
- data/spec/autotest_helper.rb +4 -3
- data/spec/rspec_suite.rb +7 -0
- data/spec/ruby_forker.rb +13 -0
- data/spec/spec/example/configuration_spec.rb +290 -0
- data/spec/spec/example/example_group_class_definition_spec.rb +48 -0
- data/spec/spec/example/example_group_factory_spec.rb +129 -0
- data/spec/spec/example/example_group_methods_spec.rb +465 -0
- data/spec/spec/example/example_group_spec.rb +711 -0
- data/spec/spec/{dsl → example}/example_matcher_spec.rb +23 -18
- data/spec/spec/example/example_methods_spec.rb +75 -0
- data/spec/spec/example/example_runner_spec.rb +194 -0
- data/spec/spec/example/example_spec.rb +53 -0
- data/spec/spec/example/nested_example_group_spec.rb +59 -0
- data/spec/spec/example/pending_module_spec.rb +31 -0
- data/spec/spec/{dsl → example}/predicate_matcher_spec.rb +1 -1
- data/spec/spec/example/shared_example_group_spec.rb +265 -0
- data/spec/spec/example/subclassing_example_group_spec.rb +25 -0
- data/spec/spec/expectations/differs/default_spec.rb +5 -3
- data/spec/spec/expectations/extensions/object_spec.rb +63 -2
- data/spec/spec/extensions/main_spec.rb +50 -0
- data/spec/spec/interop/test/unit/test_unit_spec_helper.rb +14 -0
- data/spec/spec/interop/test/unit/testcase_spec.rb +10 -0
- data/spec/spec/interop/test/unit/testcase_spec_with_test_unit.rb +20 -0
- data/spec/spec/interop/test/unit/testsuite_adapter_spec.rb +9 -0
- data/spec/spec/interop/test/unit/testsuite_adapter_spec_with_test_unit.rb +34 -0
- data/spec/spec/matchers/be_spec.rb +15 -0
- data/spec/spec/matchers/change_spec.rb +87 -0
- data/spec/spec/matchers/description_generation_spec.rb +31 -37
- data/spec/spec/matchers/exist_spec.rb +31 -22
- data/spec/spec/matchers/handler_spec.rb +42 -1
- data/spec/spec/matchers/have_spec.rb +1 -1
- data/spec/spec/matchers/mock_constraint_matchers_spec.rb +1 -1
- data/spec/spec/matchers/operator_matcher_spec.rb +1 -1
- data/spec/spec/matchers/simple_matcher_spec.rb +31 -0
- data/spec/spec/matchers/throw_symbol_spec.rb +4 -1
- data/spec/spec/mocks/bug_report_10263.rb +24 -0
- data/spec/spec/mocks/bug_report_15719_spec.rb +30 -0
- data/spec/spec/mocks/bug_report_8165_spec.rb +2 -2
- data/spec/spec/mocks/failing_mock_argument_constraints_spec.rb +1 -0
- data/spec/spec/mocks/mock_spec.rb +200 -102
- data/spec/spec/mocks/multiple_return_value_spec.rb +1 -1
- data/spec/spec/mocks/options_hash_spec.rb +19 -7
- data/spec/spec/mocks/partial_mock_spec.rb +31 -9
- data/spec/spec/mocks/passing_mock_argument_constraints_spec.rb +6 -0
- data/spec/spec/mocks/stub_spec.rb +120 -98
- data/spec/spec/package/bin_spec_spec.rb +7 -5
- data/spec/spec/runner/class_and_argument_parser_spec.rb +23 -0
- data/spec/spec/runner/command_line_spec.rb +140 -27
- data/spec/spec/runner/drb_command_line_spec.rb +39 -31
- data/spec/spec/runner/formatter/failing_example_groups_formatter_spec.rb +44 -0
- data/spec/spec/runner/formatter/failing_examples_formatter_spec.rb +16 -11
- data/spec/spec/runner/formatter/html_formatter_spec.rb +60 -50
- data/spec/spec/runner/formatter/profile_formatter_spec.rb +65 -0
- data/spec/spec/runner/formatter/progress_bar_formatter_spec.rb +29 -13
- data/spec/spec/runner/formatter/snippet_extractor_spec.rb +14 -7
- data/spec/spec/runner/formatter/spec_mate_formatter_spec.rb +103 -0
- data/spec/spec/runner/formatter/specdoc_formatter_spec.rb +103 -39
- data/spec/spec/runner/formatter/story/html_formatter_spec.rb +56 -0
- data/spec/spec/runner/formatter/story/plain_text_formatter_spec.rb +289 -0
- data/spec/spec/runner/heckle_runner_spec.rb +29 -14
- data/spec/spec/runner/heckler_spec.rb +4 -5
- data/spec/spec/runner/noisy_backtrace_tweaker_spec.rb +5 -5
- data/spec/spec/runner/option_parser_spec.rb +86 -58
- data/spec/spec/runner/options_spec.rb +239 -120
- data/spec/spec/runner/output_one_time_fixture.rb +7 -0
- data/spec/spec/runner/output_one_time_fixture_runner.rb +8 -0
- data/spec/spec/runner/output_one_time_spec.rb +16 -0
- data/spec/spec/runner/quiet_backtrace_tweaker_spec.rb +6 -6
- data/spec/spec/runner/reporter_spec.rb +147 -163
- data/spec/spec/runner/spec_parser_spec.rb +31 -0
- data/spec/spec/runner_spec.rb +11 -0
- data/spec/spec/spec_classes.rb +12 -5
- data/spec/spec/story/builders.rb +46 -0
- data/spec/spec/story/extensions/main_spec.rb +161 -0
- data/spec/spec/story/extensions_spec.rb +14 -0
- data/spec/spec/story/given_scenario_spec.rb +27 -0
- data/spec/spec/story/runner/plain_text_story_runner_spec.rb +92 -0
- data/spec/spec/story/runner/scenario_collector_spec.rb +27 -0
- data/spec/spec/story/runner/scenario_runner_spec.rb +142 -0
- data/spec/spec/story/runner/story_mediator_spec.rb +133 -0
- data/spec/spec/story/runner/story_parser_spec.rb +384 -0
- data/spec/spec/story/runner/story_runner_spec.rb +219 -0
- data/spec/spec/story/runner_spec.rb +106 -0
- data/spec/spec/story/scenario_spec.rb +20 -0
- data/spec/spec/story/step_group_spec.rb +157 -0
- data/spec/spec/story/step_mother_spec.rb +72 -0
- data/spec/spec/story/step_spec.rb +147 -0
- data/spec/spec/story/story_helper.rb +2 -0
- data/spec/spec/story/story_spec.rb +86 -0
- data/spec/spec/story/world_spec.rb +416 -0
- data/spec/spec/translator_spec.rb +2 -1
- data/spec/spec_helper.rb +59 -2
- data/stories/all.rb +5 -0
- data/stories/example_groups/autogenerated_docstrings +26 -0
- data/stories/example_groups/example_group_with_should_methods +17 -0
- data/stories/example_groups/nested_groups +17 -0
- data/stories/example_groups/output +20 -0
- data/stories/example_groups/stories.rb +7 -0
- data/stories/helper.rb +6 -0
- data/stories/interop/examples_and_tests_together +30 -0
- data/stories/interop/stories.rb +7 -0
- data/stories/interop/test_case_with_should_methods +17 -0
- data/stories/pending_stories/README +3 -0
- data/stories/resources/helpers/cmdline.rb +9 -0
- data/stories/resources/helpers/story_helper.rb +16 -0
- data/stories/resources/matchers/smart_match.rb +37 -0
- data/stories/resources/spec/example_group_with_should_methods.rb +12 -0
- data/stories/resources/spec/simple_spec.rb +8 -0
- data/stories/resources/steps/running_rspec.rb +50 -0
- data/stories/resources/test/spec_and_test_together.rb +57 -0
- data/stories/resources/test/test_case_with_should_methods.rb +30 -0
- metadata +232 -106
- data/EXAMPLES.rd +0 -111
- data/examples/multi_threaded_behaviour_runner.rb +0 -25
- data/examples/shared_behaviours_example.rb +0 -39
- data/examples/spec_helper.rb +0 -1
- data/examples/test_case_adapter_example.rb +0 -26
- data/examples/test_case_spec.rb +0 -65
- data/lib/spec/dsl.rb +0 -11
- data/lib/spec/dsl/behaviour.rb +0 -220
- data/lib/spec/dsl/behaviour_callbacks.rb +0 -82
- data/lib/spec/dsl/behaviour_eval.rb +0 -231
- data/lib/spec/dsl/behaviour_factory.rb +0 -42
- data/lib/spec/dsl/composite_proc_builder.rb +0 -33
- data/lib/spec/dsl/description.rb +0 -76
- data/lib/spec/dsl/example.rb +0 -135
- data/lib/spec/dsl/example_matcher.rb +0 -40
- data/lib/spec/dsl/example_should_raise_handler.rb +0 -74
- data/lib/spec/runner/behaviour_runner.rb +0 -123
- data/lib/spec/runner/extensions/kernel.rb +0 -50
- data/lib/spec/runner/extensions/object.rb +0 -32
- data/lib/spec/runner/formatter.rb +0 -9
- data/lib/spec/runner/formatter/failing_behaviours_formatter.rb +0 -29
- data/lib/spec/runner/formatter/rdoc_formatter.rb +0 -24
- data/lib/spec/test_case_adapter.rb +0 -10
- data/spec/spec/dsl/behaviour_eval_spec.rb +0 -79
- data/spec/spec/dsl/behaviour_factory_spec.rb +0 -48
- data/spec/spec/dsl/behaviour_spec.rb +0 -661
- data/spec/spec/dsl/composite_proc_builder_spec.rb +0 -44
- data/spec/spec/dsl/configuration_spec.rb +0 -55
- data/spec/spec/dsl/description_spec.rb +0 -89
- data/spec/spec/dsl/example_class_spec.rb +0 -24
- data/spec/spec/dsl/example_instance_spec.rb +0 -160
- data/spec/spec/dsl/example_should_raise_spec.rb +0 -137
- data/spec/spec/dsl/shared_behaviour_spec.rb +0 -252
- data/spec/spec/runner/behaviour_runner_spec.rb +0 -229
- data/spec/spec/runner/context_matching_spec.rb +0 -27
- data/spec/spec/runner/extensions/bug_report_10577_spec.rb +0 -35
- data/spec/spec/runner/extensions/kernel_spec.rb +0 -36
- data/spec/spec/runner/formatter/failing_behaviours_formatter_spec.rb +0 -40
- data/spec/spec/runner/formatter/progress_bar_formatter_dry_run_spec.rb +0 -20
- data/spec/spec/runner/formatter/progress_bar_formatter_failure_dump_spec.rb +0 -36
- data/spec/spec/runner/formatter/rdoc_formatter_dry_run_spec.rb +0 -19
- data/spec/spec/runner/formatter/rdoc_formatter_spec.rb +0 -46
- data/spec/spec/runner/formatter/specdoc_formatter_dry_run_spec.rb +0 -21
- data/spec/spec/runner/object_ext_spec.rb +0 -11
@@ -1,44 +0,0 @@
|
|
1
|
-
require File.dirname(__FILE__) + '/../../spec_helper'
|
2
|
-
|
3
|
-
module Spec
|
4
|
-
module DSL
|
5
|
-
describe CompositeProcBuilder do
|
6
|
-
before(:each) do
|
7
|
-
@klass = Class.new do
|
8
|
-
attr_reader :an_attribute
|
9
|
-
|
10
|
-
def an_attribute_setter
|
11
|
-
@an_attribute = :the_value
|
12
|
-
end
|
13
|
-
end
|
14
|
-
|
15
|
-
@parent = @klass.new
|
16
|
-
@builder = CompositeProcBuilder.new {}
|
17
|
-
end
|
18
|
-
|
19
|
-
it "calls all of its child procs" do
|
20
|
-
@builder << proc {:proc1}
|
21
|
-
@builder << proc {:proc2}
|
22
|
-
@builder.proc.call.should == [:proc1, :proc2]
|
23
|
-
end
|
24
|
-
|
25
|
-
it "evals procs in the caller's instance" do
|
26
|
-
the_proc = proc do
|
27
|
-
@an_attribute = :the_value
|
28
|
-
end
|
29
|
-
the_proc.class.should == Proc
|
30
|
-
@builder << the_proc
|
31
|
-
@parent.instance_eval &@builder.proc
|
32
|
-
@parent.an_attribute.should == :the_value
|
33
|
-
end
|
34
|
-
|
35
|
-
it "binds unbound methods to the parent" do
|
36
|
-
unbound_method = @klass.instance_method(:an_attribute_setter)
|
37
|
-
unbound_method.class.should == UnboundMethod
|
38
|
-
@builder << unbound_method
|
39
|
-
@parent.instance_eval &@builder.proc
|
40
|
-
@parent.an_attribute.should == :the_value
|
41
|
-
end
|
42
|
-
end
|
43
|
-
end
|
44
|
-
end
|
@@ -1,55 +0,0 @@
|
|
1
|
-
require File.dirname(__FILE__) + '/../../spec_helper.rb'
|
2
|
-
|
3
|
-
module Spec
|
4
|
-
module DSL
|
5
|
-
describe Configuration do
|
6
|
-
before(:each) do
|
7
|
-
@config = Configuration.new
|
8
|
-
@behaviour = mock("behaviour")
|
9
|
-
end
|
10
|
-
|
11
|
-
it "should default mock framework to rspec" do
|
12
|
-
@config.mock_framework.should =~ /\/plugins\/mock_frameworks\/rspec$/
|
13
|
-
end
|
14
|
-
|
15
|
-
it "should let you set rspec mocking explicitly" do
|
16
|
-
@config.mock_with(:rspec)
|
17
|
-
@config.mock_framework.should =~ /\/plugins\/mock_frameworks\/rspec$/
|
18
|
-
end
|
19
|
-
|
20
|
-
it "should let you set mocha" do
|
21
|
-
@config.mock_with(:mocha)
|
22
|
-
@config.mock_framework.should =~ /\/plugins\/mock_frameworks\/mocha$/
|
23
|
-
end
|
24
|
-
|
25
|
-
it "should let you set flexmock" do
|
26
|
-
@config.mock_with(:flexmock)
|
27
|
-
@config.mock_framework.should =~ /\/plugins\/mock_frameworks\/flexmock$/
|
28
|
-
end
|
29
|
-
|
30
|
-
it "should let you set rr" do
|
31
|
-
@config.mock_with(:rr)
|
32
|
-
@config.mock_framework.should =~ /\/plugins\/mock_frameworks\/rr$/
|
33
|
-
end
|
34
|
-
|
35
|
-
it "should let you set an arbitrary adapter module" do
|
36
|
-
adapter = Module.new
|
37
|
-
@config.mock_with(adapter)
|
38
|
-
@config.mock_framework.should == adapter
|
39
|
-
end
|
40
|
-
|
41
|
-
it "should let you define modules to be included" do
|
42
|
-
mod = Module.new
|
43
|
-
@config.include mod
|
44
|
-
@config.modules_for(nil).should include(mod)
|
45
|
-
end
|
46
|
-
|
47
|
-
[:prepend_before, :append_before, :prepend_after, :append_after].each do |m|
|
48
|
-
it "should delegate ##{m} to Behaviour class" do
|
49
|
-
Behaviour.should_receive(m).with(:whatever)
|
50
|
-
@config.__send__(m, :whatever)
|
51
|
-
end
|
52
|
-
end
|
53
|
-
end
|
54
|
-
end
|
55
|
-
end
|
@@ -1,89 +0,0 @@
|
|
1
|
-
require File.dirname(__FILE__) + '/../../spec_helper'
|
2
|
-
|
3
|
-
module Spec
|
4
|
-
module DSL
|
5
|
-
describe Description, " constructed with a single String" do
|
6
|
-
before(:each) {@description = Description.new("abc")}
|
7
|
-
|
8
|
-
it "should provide that string as its name" do
|
9
|
-
@description.description.should == "abc"
|
10
|
-
end
|
11
|
-
it "should provide nil as its type" do
|
12
|
-
@description.described_type.should be_nil
|
13
|
-
end
|
14
|
-
it "should respond to []" do
|
15
|
-
@description[:key].should be_nil
|
16
|
-
end
|
17
|
-
it "should respond to []=" do
|
18
|
-
@description[:key] = :value
|
19
|
-
@description[:key].should == :value
|
20
|
-
end
|
21
|
-
it "should return for == when value matches description" do
|
22
|
-
@description.should == "abc"
|
23
|
-
end
|
24
|
-
it "should return for == when value is other description that matches description" do
|
25
|
-
@description.should == Description.new("abc")
|
26
|
-
end
|
27
|
-
end
|
28
|
-
|
29
|
-
describe Description, " constructed with a Type" do
|
30
|
-
before(:each) {@description = Description.new(Behaviour)}
|
31
|
-
|
32
|
-
it "should provide a String representation of that type (fully qualified) as its name" do
|
33
|
-
@description.description.should == "Spec::DSL::Behaviour"
|
34
|
-
end
|
35
|
-
it "should provide that type (fully qualified) as its type" do
|
36
|
-
@description.described_type.should == Spec::DSL::Behaviour
|
37
|
-
end
|
38
|
-
end
|
39
|
-
|
40
|
-
describe Description, " constructed with a Type and a String" do
|
41
|
-
before(:each) {@description = Description.new(Behaviour, " behaving")}
|
42
|
-
|
43
|
-
it "should include the type and second String in its name" do
|
44
|
-
@description.description.should == "Spec::DSL::Behaviour behaving"
|
45
|
-
end
|
46
|
-
it "should provide that type (fully qualified) as its type" do
|
47
|
-
@description.described_type.should == Spec::DSL::Behaviour
|
48
|
-
end
|
49
|
-
end
|
50
|
-
|
51
|
-
describe Description, "constructed with a Type and a String not starting with a space" do
|
52
|
-
before(:each) {@description = Description.new(Behaviour, "behaving")}
|
53
|
-
|
54
|
-
it "should include the type and second String with a space in its name" do
|
55
|
-
@description.description.should == "Spec::DSL::Behaviour behaving"
|
56
|
-
end
|
57
|
-
end
|
58
|
-
|
59
|
-
describe Description, "constructed with a Type and a String starting with a ." do
|
60
|
-
before(:each) {@description = Description.new(Behaviour, ".behaving")}
|
61
|
-
|
62
|
-
it "should include the type and second String with a space in its name" do
|
63
|
-
@description.description.should == "Spec::DSL::Behaviour.behaving"
|
64
|
-
end
|
65
|
-
end
|
66
|
-
|
67
|
-
describe Description, "constructed with a Type and a String starting with a #" do
|
68
|
-
before(:each) {@description = Description.new(Behaviour, "#behaving")}
|
69
|
-
|
70
|
-
it "should include the type and second String with a space in its name" do
|
71
|
-
@description.description.should == "Spec::DSL::Behaviour#behaving"
|
72
|
-
end
|
73
|
-
end
|
74
|
-
|
75
|
-
describe Description, " constructed with options" do
|
76
|
-
before(:each) do
|
77
|
-
@description = Description.new(Behaviour, :a => "b", :spec_path => "blah")
|
78
|
-
end
|
79
|
-
|
80
|
-
it "should provide its options" do
|
81
|
-
@description[:a].should == "b"
|
82
|
-
end
|
83
|
-
|
84
|
-
it "should wrap spec path using File.expand_path" do
|
85
|
-
@description[:spec_path].should == File.expand_path("blah")
|
86
|
-
end
|
87
|
-
end
|
88
|
-
end
|
89
|
-
end
|
@@ -1,24 +0,0 @@
|
|
1
|
-
require File.dirname(__FILE__) + '/../../spec_helper.rb'
|
2
|
-
|
3
|
-
module Spec
|
4
|
-
module DSL
|
5
|
-
describe Example, " class" do
|
6
|
-
|
7
|
-
def run(example)
|
8
|
-
example.run(@reporter, nil, nil, nil, Object.new)
|
9
|
-
end
|
10
|
-
|
11
|
-
before do
|
12
|
-
@reporter = stub("reporter", :example_started => nil, :example_finished => nil)
|
13
|
-
@example_class = Example.dup
|
14
|
-
end
|
15
|
-
|
16
|
-
it "should report errors in example" do
|
17
|
-
error = Exception.new
|
18
|
-
example = @example_class.new("example") {raise(error)}
|
19
|
-
@reporter.should_receive(:example_finished).with(equal(example), error, "example", false)
|
20
|
-
run(example)
|
21
|
-
end
|
22
|
-
end
|
23
|
-
end
|
24
|
-
end
|
@@ -1,160 +0,0 @@
|
|
1
|
-
require File.dirname(__FILE__) + '/../../spec_helper.rb'
|
2
|
-
|
3
|
-
module Spec
|
4
|
-
module DSL
|
5
|
-
describe Example, " instance" do
|
6
|
-
predicate_matchers[:is_a] = [:is_a?]
|
7
|
-
|
8
|
-
before(:each) do
|
9
|
-
@reporter = stub("reporter", :example_started => nil, :example_finished => nil)
|
10
|
-
end
|
11
|
-
|
12
|
-
it "should send reporter example_started" do
|
13
|
-
example=Example.new("example") {}
|
14
|
-
@reporter.should_receive(:example_started).with(equal(example))
|
15
|
-
example.run(@reporter, nil, nil, false, nil)
|
16
|
-
end
|
17
|
-
|
18
|
-
it "should report its name for dry run" do
|
19
|
-
example=Example.new("example") {}
|
20
|
-
@reporter.should_receive(:example_finished).with(equal(example))
|
21
|
-
example.run(@reporter, nil, nil, true, nil) #4th arg indicates dry run
|
22
|
-
end
|
23
|
-
|
24
|
-
it "should report success" do
|
25
|
-
example=Example.new("example") {}
|
26
|
-
@reporter.should_receive(:example_finished).with(equal(example), nil, nil, false)
|
27
|
-
example.run(@reporter, nil, nil, nil, nil)
|
28
|
-
end
|
29
|
-
|
30
|
-
it "should report failure due to failure" do
|
31
|
-
example=Example.new("example") do
|
32
|
-
(2+2).should == 5
|
33
|
-
end
|
34
|
-
@reporter.should_receive(:example_finished).with(equal(example), is_a(Spec::Expectations::ExpectationNotMetError), "example", false)
|
35
|
-
example.run(@reporter, nil, nil, nil, nil)
|
36
|
-
end
|
37
|
-
|
38
|
-
it "should report failure due to error" do
|
39
|
-
error=NonStandardError.new
|
40
|
-
example=Example.new("example") do
|
41
|
-
raise(error)
|
42
|
-
end
|
43
|
-
@reporter.should_receive(:example_finished).with(equal(example), error, "example", false)
|
44
|
-
example.run(@reporter, nil, nil, nil, nil)
|
45
|
-
end
|
46
|
-
|
47
|
-
it "should run example in scope of supplied object" do
|
48
|
-
scope_class = Class.new
|
49
|
-
example=Example.new("should pass") do
|
50
|
-
self.instance_of?(Example).should == false
|
51
|
-
self.instance_of?(scope_class).should == true
|
52
|
-
end
|
53
|
-
@reporter.should_receive(:example_finished).with(equal(example), nil, nil, false)
|
54
|
-
example.run(@reporter, nil, nil, nil, scope_class.new)
|
55
|
-
end
|
56
|
-
|
57
|
-
it "should not run example block if before_each fails" do
|
58
|
-
example_ran = false
|
59
|
-
example=Example.new("should pass") {example_ran = true}
|
60
|
-
before_each = lambda {raise NonStandardError}
|
61
|
-
example.run(@reporter, before_each, nil, nil, Object.new)
|
62
|
-
example_ran.should == false
|
63
|
-
end
|
64
|
-
|
65
|
-
it "should run after_each block if before_each fails" do
|
66
|
-
after_each_ran = false
|
67
|
-
example=Example.new("should pass") {}
|
68
|
-
before_each = lambda {raise NonStandardError}
|
69
|
-
after_each = lambda {after_each_ran = true}
|
70
|
-
example.run(@reporter, before_each, after_each, nil, Object.new)
|
71
|
-
after_each_ran.should == true
|
72
|
-
end
|
73
|
-
|
74
|
-
it "should run after_each block when example fails" do
|
75
|
-
example=Example.new("example") do
|
76
|
-
raise(NonStandardError.new("in body"))
|
77
|
-
end
|
78
|
-
after_each=lambda do
|
79
|
-
raise("in after_each")
|
80
|
-
end
|
81
|
-
@reporter.should_receive(:example_finished) do |example, error, location|
|
82
|
-
example.should equal(example)
|
83
|
-
location.should eql("example")
|
84
|
-
error.message.should eql("in body")
|
85
|
-
end
|
86
|
-
example.run(@reporter, nil, after_each, nil, nil)
|
87
|
-
end
|
88
|
-
|
89
|
-
it "should report failure location when in before_each" do
|
90
|
-
example=Example.new("example") {}
|
91
|
-
before_each=lambda { raise(NonStandardError.new("in before_each")) }
|
92
|
-
@reporter.should_receive(:example_finished) do |name, error, location|
|
93
|
-
name.should equal(example)
|
94
|
-
error.message.should eql("in before_each")
|
95
|
-
location.should eql("before(:each)")
|
96
|
-
end
|
97
|
-
example.run(@reporter, before_each, nil, nil, nil)
|
98
|
-
end
|
99
|
-
|
100
|
-
it "should report failure location when in after_each" do
|
101
|
-
example = Example.new("example") {}
|
102
|
-
after_each = lambda { raise(NonStandardError.new("in after_each")) }
|
103
|
-
@reporter.should_receive(:example_finished) do |name, error, location|
|
104
|
-
name.should equal(example)
|
105
|
-
error.message.should eql("in after_each")
|
106
|
-
location.should eql("after(:each)")
|
107
|
-
end
|
108
|
-
example.run(@reporter, nil, after_each, nil, nil)
|
109
|
-
end
|
110
|
-
|
111
|
-
it "should accept an options hash following the example name" do
|
112
|
-
example = Example.new("name", :key => 'value')
|
113
|
-
end
|
114
|
-
|
115
|
-
it "should report NO NAME when told to use generated description with --dry-run" do
|
116
|
-
example = Example.new(:__generate_description) {
|
117
|
-
5.should == 5
|
118
|
-
}
|
119
|
-
@reporter.should_receive(:example_finished) do |example, error, location|
|
120
|
-
example.description.should == "NO NAME (Because of --dry-run)"
|
121
|
-
end
|
122
|
-
example.run(@reporter, lambda{}, lambda{}, true, Object.new)
|
123
|
-
end
|
124
|
-
|
125
|
-
it "should report NO NAME when told to use generated description with no expectations" do
|
126
|
-
example = Example.new(:__generate_description) {}
|
127
|
-
@reporter.should_receive(:example_finished) do |example, error, location|
|
128
|
-
example.description.should == "NO NAME (Because there were no expectations)"
|
129
|
-
end
|
130
|
-
example.run(@reporter, lambda{}, lambda{}, false, Object.new)
|
131
|
-
end
|
132
|
-
|
133
|
-
it "should report NO NAME when told to use generated description and matcher fails" do
|
134
|
-
example = Example.new(:__generate_description) do
|
135
|
-
5.should "" # Has no matches? method..
|
136
|
-
end
|
137
|
-
@reporter.should_receive(:example_finished) do |example, error, location|
|
138
|
-
example.description.should == "NO NAME (Because of Error raised in matcher)"
|
139
|
-
end
|
140
|
-
example.run(@reporter, nil, nil, nil, Object.new)
|
141
|
-
end
|
142
|
-
|
143
|
-
it "should report generated description when told to and it is available" do
|
144
|
-
example = Example.new(:__generate_description) {
|
145
|
-
5.should == 5
|
146
|
-
}
|
147
|
-
@reporter.should_receive(:example_finished) do |example, error, location|
|
148
|
-
example.description.should == "should == 5"
|
149
|
-
end
|
150
|
-
example.run(@reporter, nil, nil, nil, Object.new)
|
151
|
-
end
|
152
|
-
|
153
|
-
it "should unregister description_generated callback (lest a memory leak should build up)" do
|
154
|
-
example = Example.new("something")
|
155
|
-
Spec::Matchers.should_receive(:unregister_description_generated).with(is_a(Proc))
|
156
|
-
example.run(@reporter, nil, nil, nil, Object.new)
|
157
|
-
end
|
158
|
-
end
|
159
|
-
end
|
160
|
-
end
|
@@ -1,137 +0,0 @@
|
|
1
|
-
require File.dirname(__FILE__) + '/../../spec_helper.rb'
|
2
|
-
|
3
|
-
module Spec
|
4
|
-
module DSL
|
5
|
-
describe Example, " declared with {:should_raise => ...}" do
|
6
|
-
before(:each) do
|
7
|
-
@reporter = mock("reporter")
|
8
|
-
@reporter.stub!(:example_started)
|
9
|
-
end
|
10
|
-
|
11
|
-
def verify_error(error, message=nil)
|
12
|
-
error.should be_an_instance_of(Spec::Expectations::ExpectationNotMetError)
|
13
|
-
unless message.nil?
|
14
|
-
return error.message.should =~ message if Regexp === message
|
15
|
-
return error.message.should == message
|
16
|
-
end
|
17
|
-
end
|
18
|
-
|
19
|
-
it "true} should pass when there is an ExpectationNotMetError" do
|
20
|
-
example = Spec::DSL:: Example.new("example", :should_raise => true) do
|
21
|
-
raise Spec::Expectations::ExpectationNotMetError
|
22
|
-
end
|
23
|
-
@reporter.should_receive(:example_finished) do |description, error|
|
24
|
-
error.should be_nil
|
25
|
-
end
|
26
|
-
example.run(@reporter, nil, nil, nil, nil)
|
27
|
-
end
|
28
|
-
|
29
|
-
it "true} should fail if nothing is raised" do
|
30
|
-
example = Spec::DSL:: Example.new("example", :should_raise => true) {}
|
31
|
-
@reporter.should_receive(:example_finished) do |example_name, error|
|
32
|
-
verify_error(error, /example block expected Exception but nothing was raised/)
|
33
|
-
end
|
34
|
-
example.run(@reporter, nil, nil, nil, nil)
|
35
|
-
end
|
36
|
-
|
37
|
-
it "NameError} should pass when there is a NameError" do
|
38
|
-
example = Spec::DSL:: Example.new("example", :should_raise => NameError) do
|
39
|
-
raise NameError
|
40
|
-
end
|
41
|
-
@reporter.should_receive(:example_finished) do |example_name, error|
|
42
|
-
error.should be_nil
|
43
|
-
end
|
44
|
-
example.run(@reporter, nil, nil, nil, nil)
|
45
|
-
end
|
46
|
-
|
47
|
-
it "NameError} should fail when there is no error" do
|
48
|
-
example = Spec::DSL:: Example.new("example", :should_raise => NameError) do
|
49
|
-
#do nothing
|
50
|
-
end
|
51
|
-
@reporter.should_receive(:example_finished) do |example_name, error|
|
52
|
-
verify_error(error,/example block expected NameError but nothing was raised/)
|
53
|
-
end
|
54
|
-
example.run(@reporter, nil, nil, nil, nil)
|
55
|
-
end
|
56
|
-
|
57
|
-
it "NameError} should fail when there is the wrong error" do
|
58
|
-
example = Spec::DSL:: Example.new("example", :should_raise => NameError) do
|
59
|
-
raise RuntimeError
|
60
|
-
end
|
61
|
-
@reporter.should_receive(:example_finished) do |example_name, error|
|
62
|
-
verify_error(error, /example block expected NameError but raised.+RuntimeError/)
|
63
|
-
end
|
64
|
-
example.run(@reporter, nil, nil, nil, nil)
|
65
|
-
end
|
66
|
-
|
67
|
-
it "[NameError]} should pass when there is a NameError" do
|
68
|
-
example = Spec::DSL:: Example.new("spec", :should_raise => [NameError]) do
|
69
|
-
raise NameError
|
70
|
-
end
|
71
|
-
@reporter.should_receive(:example_finished) do |description, error|
|
72
|
-
error.should be_nil
|
73
|
-
end
|
74
|
-
example.run(@reporter, nil, nil, nil, nil)
|
75
|
-
end
|
76
|
-
|
77
|
-
it "[NameError]} should fail when there is no error" do
|
78
|
-
example = Spec::DSL:: Example.new("spec", :should_raise => [NameError]) do
|
79
|
-
end
|
80
|
-
@reporter.should_receive(:example_finished) do |description, error|
|
81
|
-
verify_error(error, /example block expected NameError but nothing was raised/)
|
82
|
-
end
|
83
|
-
example.run(@reporter, nil, nil, nil, nil)
|
84
|
-
end
|
85
|
-
|
86
|
-
it "[NameError]} should fail when there is the wrong error" do
|
87
|
-
example = Spec::DSL:: Example.new("spec", :should_raise => [NameError]) do
|
88
|
-
raise RuntimeError
|
89
|
-
end
|
90
|
-
@reporter.should_receive(:example_finished) do |description, error|
|
91
|
-
verify_error(error, /example block expected NameError but raised.+RuntimeError/)
|
92
|
-
end
|
93
|
-
example.run(@reporter, nil, nil, nil, nil)
|
94
|
-
end
|
95
|
-
|
96
|
-
it "[NameError, 'message'} should pass when there is a NameError with the right message" do
|
97
|
-
example = Spec::DSL:: Example.new("spec", :should_raise => [NameError, 'expected']) do
|
98
|
-
raise NameError, 'expected'
|
99
|
-
end
|
100
|
-
@reporter.should_receive(:example_finished) do |description, error|
|
101
|
-
error.should be_nil
|
102
|
-
end
|
103
|
-
example.run(@reporter, nil, nil, nil, nil)
|
104
|
-
end
|
105
|
-
|
106
|
-
it "[NameError, 'message'} should pass when there is a NameError with a message matching a regex" do
|
107
|
-
example = Spec::DSL:: Example.new("spec", :should_raise => [NameError, /xpec/]) do
|
108
|
-
raise NameError, 'expected'
|
109
|
-
end
|
110
|
-
@reporter.should_receive(:example_finished) do |description, error|
|
111
|
-
error.should be_nil
|
112
|
-
end
|
113
|
-
example.run(@reporter, nil, nil, nil, nil)
|
114
|
-
end
|
115
|
-
|
116
|
-
it "[NameError, 'message'} should fail when there is a NameError with the wrong message" do
|
117
|
-
example = Spec::DSL:: Example.new("spec", :should_raise => [NameError, 'expected']) do
|
118
|
-
raise NameError, 'wrong message'
|
119
|
-
end
|
120
|
-
@reporter.should_receive(:example_finished) do |description, error|
|
121
|
-
verify_error(error, /example block expected #<NameError: expected> but raised #<NameError: wrong message>/)
|
122
|
-
end
|
123
|
-
example.run(@reporter, nil, nil, nil, nil)
|
124
|
-
end
|
125
|
-
|
126
|
-
it "[NameError, 'message'} should fail when there is a NameError with a message not matching regexp" do
|
127
|
-
example = Spec::DSL:: Example.new("spec", :should_raise => [NameError, /exp/]) do
|
128
|
-
raise NameError, 'wrong message'
|
129
|
-
end
|
130
|
-
@reporter.should_receive(:example_finished) do |description, error|
|
131
|
-
verify_error(error, /example block expected #<NameError: \(\?-mix:exp\)> but raised #<NameError: wrong message>/)
|
132
|
-
end
|
133
|
-
example.run(@reporter, nil, nil, nil, nil)
|
134
|
-
end
|
135
|
-
end
|
136
|
-
end
|
137
|
-
end
|