rspec 1.0.8 → 1.1.0
Sign up to get free protection for your applications and to get access to all the features.
- 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
data/CHANGES
CHANGED
@@ -1,3 +1,123 @@
|
|
1
|
+
== Version 1.1.0
|
2
|
+
|
3
|
+
The "tell me a story and go nest yourself" release.
|
4
|
+
|
5
|
+
* Applied patch from Mike Vincent to handle generators rails > 2.0.1. Closes LH[#181]
|
6
|
+
* Formatter.pending signature changed so it gets passed an ExampleGroup instance instead of the name ( LH[#180])
|
7
|
+
* Fixed LH[#180] Spec::Rails::Example::ModelExampleGroup and friends show up in rspec/rails output
|
8
|
+
* Spec::Rails no longer loads ActiveRecord extensions if it's disablet in config/boot.rb
|
9
|
+
* Applied LH[#178] small annoyances running specs with warnings enabled (Patch from Mikko Lehtonen)
|
10
|
+
* Tighter integration with Rails fixtures. Take advantage of fixture caching to get performance improvements (Thanks to Pat Maddox, Nick Kallen, Jonathan Barnes, and Curtis)
|
11
|
+
|
12
|
+
== Version 1.1.0-RC1
|
13
|
+
|
14
|
+
Textmate Bundle users - this release adds a new RSpec bundle that highlights describe, it, before and after and
|
15
|
+
provides navigation to descriptions and examples (rather than classes and methods). When you first install this,
|
16
|
+
it is going to try to hijack all of your .rb files. All you need to do is open a .rb file that does not end with
|
17
|
+
'spec.rb' and change the bundle selection from RSpec to Ruby. TextMate will do the right thing from then on.
|
18
|
+
|
19
|
+
Shortcuts for tab-activated snippets all follow the TextMate convention of 2 or 3 letters of the first word, followed by the first letter of each subsequent word. So "should have_at_least" would be triggered by shhal.
|
20
|
+
|
21
|
+
We reduced the scope for running spec directories, files, a single file or individual spec in TextMate to source.ruby.rspec. This allowed us to restore the standard Ruby shortcuts:
|
22
|
+
|
23
|
+
CMD-R runs all the specs in one file
|
24
|
+
CMD-SHIFT-R runs an individual spec
|
25
|
+
CMD-OPT-R runs any files or directories selected in the TextMate drawer
|
26
|
+
|
27
|
+
rspec_on_rails users - don't forget to run script/generate rspec
|
28
|
+
|
29
|
+
* Added shared_examples_for method, which you can (should) use instead of describe Foo, :shared => true
|
30
|
+
* Applied LH[#168] Fix describe Object, "description contains a # in it" (Patch from Martin Emde)
|
31
|
+
* Applied LH[#15] Reverse loading of ActionView::Base helper modules (Patch from Mark Van Holstyn)
|
32
|
+
* Applied LH[#149] Update contribute page to point towards lighthouse (Patch from Josh Knowles)
|
33
|
+
* Applied LH[#142] verify_rcov fails with latest rcov (Patch from Kyle Hargraves)
|
34
|
+
* Applied LH[#10] Allow stubs to yield and return values (Patch from Pat Maddox)
|
35
|
+
* Fixed LH[#139] version.rb in trunk missing svn last changed number
|
36
|
+
* Applied LH[#14] Adding support for by_at_least/by_at_most in Change matcher (Patch from Saimon Moore)
|
37
|
+
* Applied LH[#12] Fix for TM when switching to alternate file (Patch from Trevor Squires)
|
38
|
+
* Applied LH[#133] ExampleMatcher should match against before(:all) (Patch from Bob Cotton)
|
39
|
+
* Applied LH[#134] Only load spec inside spec_helper.rb (Patch from Mark Van Holstyn)
|
40
|
+
* RSpec now bails immediately if there are examples with identical names.
|
41
|
+
* Applied LH[#132] Plain Text stories should support Given and Given: (Patch from Jarkko Laine)
|
42
|
+
* Applied LH[#16] Have SimpleMatchers expose their description for specdocs (Patch from Bryan Helmkamp)
|
43
|
+
* Stories now support --colour
|
44
|
+
* Changed the DSL modules to Example (i.e. Spec::Example instead of Spec::DSL)
|
45
|
+
* Applied [#15608] Story problem if parenthesis used in Given, When, Then or And (Patch from Sinclair Bain)
|
46
|
+
* Applied [#15659] GivenScenario fails when it is a RailsStory (Patch from Nathan Sutton)
|
47
|
+
* Fixed [#15639] rcov exclusion configuration. (Spec::Rails projects can configure rcov with spec/rcov.opts)
|
48
|
+
* The rdoc formatter (--format rdoc) is gone. It was buggy and noone was using it.
|
49
|
+
* Changed Spec::DSL::Behaviour to Spec::DSL::ExampleGroup
|
50
|
+
* Changed Spec::DSL::SharedBehaviour to Spec::DSL::SharedExampleGroup
|
51
|
+
* Applied [#14023] Small optimization for heavily proxied objects. (Patch from Ian Leitch)
|
52
|
+
* Applied [#13943] ProfileFormatter (Top 10 slowest examples) (Patch from Ian Leitch)
|
53
|
+
* Fixed [#15232] heckle is not working correctly in trunk (as of r2801)
|
54
|
+
* Applied [#14399] Show pending reasons in HTML report (Patch from Bryan Helmkamp)
|
55
|
+
* Discovered fixed: [#10263] mock "leak" when setting an expectation in a block passed to mock#should_receive
|
56
|
+
* Fixed [#14671] Spec::DSL::ExampleRunner gives "NO NAME because of --dry-run" for every example for 'rake spec:doc'
|
57
|
+
* Fixed [#14543] rspec_scaffold broken with Rails 2.0
|
58
|
+
* Removed Patch [#10577] Rails with Oracle breaks 0.9.2 - was no longer necessary since we moved describe to the Main object (instead of Object)
|
59
|
+
* Fixed [#14527] specs run twice on rails 1.2.4 and rspec/rspec_on_rails trunk
|
60
|
+
* Applied [#14043] Change output ordering to show pending before errors (Patch from Mike Mangino)
|
61
|
+
* Applied [#14095] Don't have ./script/generate rspec create previous_failures.txt (Patch from Bryan Helmkamp)
|
62
|
+
* Applied [#14254] Improved error handling for Object#should and Object#should_not (Patch from Antti Tarvainen)
|
63
|
+
* Applied [#14186] Remove dead code from message_expecation.rb (Patch from Antti Tarvainen)
|
64
|
+
* Applied [#14183] Tiny improvement on mock_spec.rb (Patch from Antti Tarvainen)
|
65
|
+
* Applied [#14208] Fix to Mock#method_missing raising NameErrors instead of MockExpectationErrors (Patch from Antti Tarvainen)
|
66
|
+
* Applied [#14255] Fixed examples in mock_spec.rb and shared_behaviour_spec.rb (Patch from Antti Tarvainen)
|
67
|
+
* Applied [#14362] partially mocking objects that define == can blow up (Patch from Pat Maddox)
|
68
|
+
* test_ methods with an arity of 0 defined in a describe block or Example object will be run as an Example, providing a seamless transition from Test::Unit
|
69
|
+
* Removed BehaviourRunner
|
70
|
+
* Fixed [#13969] Spec Failures on Trunk w/ Autotest
|
71
|
+
* Applied [#14156] False positives with should_not (Patch from Antti Tarvainen)
|
72
|
+
* Applied [#14170] route_for and params_from internal specs fixed (Patch from Antti Tarvainen)
|
73
|
+
* Fixed [#14166] Cannot build trunk
|
74
|
+
* Applied [#14142] Fix for bug #11602: Nested #have_tag specifications fails on the wrong line number (Patch from Antti Tarvainen)
|
75
|
+
* Removed warn_if_no_files argument and feature
|
76
|
+
* Steps (Given/When/Then) with no blocks are treated as pending
|
77
|
+
* Applied [#13913] Scenario should treat no code block as pending (Patch from Evan Light)
|
78
|
+
* Fixed [#13370] Weird mock expectation error (Patch from Mike Mangino)
|
79
|
+
* Applied [#13952] Fix for performance regression introduced in r2096 (Patch from Ian Leitch)
|
80
|
+
* Applied [#13881] Dynamically include Helpers that are included on ActionView::Base (Patch from Brandon Keepers)
|
81
|
+
* Applied [#13833] ActionView::Helpers::JavaScriptMacrosHelper removed after 1.2.3 (Patch from Yurii Rashkovskii)
|
82
|
+
* Applied [#13814] RSpec on Rails w/ fixture-scenarios (Patch from Shintaro Kakutani)
|
83
|
+
* Add ability to define Example subclass instead of using describe
|
84
|
+
* Applied Patch from James Edward Gray II to improve syntax highlighting in TextMate
|
85
|
+
* Fixed [#13579] NoMethodError not raised for missing helper methods
|
86
|
+
* Fixed [#13713] form helper method 'select' can not be called when calling custom helper methods from specs
|
87
|
+
* Example subclasses Test::Unit::TestCase
|
88
|
+
* Added stub_everything method to create a stub that will return itself for any message it doesn't understand
|
89
|
+
* Added stories directory with stories/all.rb and stories/helper.rb when you script/generate rspec
|
90
|
+
* Applied [#13554] Add "And" so you can say Given... And... When... Then... And...
|
91
|
+
* Applied [#11254] RSpec syntax coloring and function pop-up integration in TextMate (Patch from Wincent Colaiuta)
|
92
|
+
* Applied [#13143] ActionView::Helpers::RecordIdentificationHelper should be included if present (Patch from Jay Levitt)
|
93
|
+
* Applied [#13567] patch to allow stubs to yield consecutive values (Patch from Rupert Voelcker)
|
94
|
+
* Applied [#13559] reverse version of route_for (Patch from Rupert Voelcker)
|
95
|
+
* Added [#13532] /lib specs should get base EvalContext
|
96
|
+
* Applied [#13451] Add a null_object option to mock_model (Patch from James Deville)
|
97
|
+
* Applied [#11919] Making non-implemented specs easy in textmate (Patch from Scott Taylor)
|
98
|
+
* Applied [#13274] ThrowSymbol recognized a NameError triggered by Kernel#method_missing as a thrown Symbol
|
99
|
+
* Applied [#12722] the alternate file command does not work in rails views due to scope (Patch from Carl Porth)
|
100
|
+
* Behaviour is now a Module that is used by Example class methods and SharedBehaviour
|
101
|
+
* Added ExampleDefinition
|
102
|
+
* Added story runner framework based on rbehave [#12628]
|
103
|
+
* Applied [#13336] Helper directory incorrect for rake stats in statsetup task (Patch from Curtis Miller)
|
104
|
+
* Applied [#13339] Add the ability for spec_parser to parse describes with :behaviour_type set (Patch from Will Leinweber and Dav Yaginuma)
|
105
|
+
* Fixed [#13271] incorrect behaviour with expect_render and stub_render
|
106
|
+
* Applied [#13129] Fix failing specs in spec_distributed (Patch from Bob Cotton)
|
107
|
+
* Applied [#13118] Rinda support for Spec::Distributed (Patch from Bob Cotton)
|
108
|
+
* Removed BehaviourEval
|
109
|
+
* Removed Behaviour#inherit
|
110
|
+
* Moved implementation of install_dependencies to example_rails_app
|
111
|
+
* Renamed RSPEC_DEPS to VENDOR_DEPS
|
112
|
+
* Added Example#not_implemented?
|
113
|
+
* You can now stub!(:msg).with(specific args)
|
114
|
+
* describe("A", Hash, "with one element") will generate description "A Hash with one element" (Tip from Ola Bini)
|
115
|
+
* Applied [#13016] [DOC] Point out that view specs render, well, a view (Patch from Jay Levitt)
|
116
|
+
* Applied [#13078] Develop rspec with autotest (Patch from Scott Taylor)
|
117
|
+
* Fixed [#13065] Named routes throw a NoMethodError in Helper specs (Patches from James Deville and Mike Mangino)
|
118
|
+
* Added (back) the verbose attribute in Spec::Rake::SpecTask
|
119
|
+
* Changed documentation to point at the new http svn URL, which is more accessible.
|
120
|
+
|
1
121
|
== Version 1.0.8
|
2
122
|
|
3
123
|
Another bugfix release - this time to resolve the version mismatch
|
@@ -31,7 +151,7 @@ able to use the passed Example instance as if it were a String.
|
|
31
151
|
* Applied [#12935] Remove requirement that mocha must be installed as a gem when used as mocking framework. (Patch from Ryan Kinderman).
|
32
152
|
* Fixed [#12893] RSpec's Autotest should work with rspec's trunk
|
33
153
|
* Fixed [#12865] Partial mock error when object has an @options instance var
|
34
|
-
* Applied [#12701] Allow checking of content captured with content_for in view specs (Patch from Jens Kr�mer)
|
154
|
+
* Applied [#12701] Allow checking of content captured with content_for in view specs (Patch from Jens Kr�mer)
|
35
155
|
* Applied [#12817] Cannot include same shared behaviour when required with absolute paths (Patch from Ian Leitch)
|
36
156
|
* Applied [#12719] rspec_on_rails should not include pagination helper (Patch from Matthijs Langenberg)
|
37
157
|
* Fixed [#12714] helper spec not finding rails core helpers
|
@@ -56,7 +176,7 @@ able to use the passed Example instance as if it were a String.
|
|
56
176
|
* Fixed [#12079] auto-generated example name incomplete: should have 1 error on ....]
|
57
177
|
* Applied [#12066] Docfix for mocks/mocks.page (Patch from Kyle Hargraves)
|
58
178
|
* Fixed [#11891] script/generate rspec_controller fails to create appropriate views (from templates) on edge rails
|
59
|
-
* Applied [#11921] Adds the correct controller_name from derived_controller_name() to the
|
179
|
+
* Applied [#11921] Adds the correct controller_name from derived_controller_name() to the ViewExampleGroupController (Patch from Eloy Duran)
|
60
180
|
* Fixed [#11903] config.include with behaviour_type 'hash' does not work
|
61
181
|
* Examples without blocks and pending is now reported with a P instead of a *
|
62
182
|
* Pending blocks that now pass are rendered blue
|
data/README
CHANGED
@@ -1,11 +1,13 @@
|
|
1
1
|
== RSpec
|
2
2
|
|
3
|
-
RSpec is a Behaviour
|
4
|
-
|
5
|
-
would play in a Test Driven Development environment, but does so using
|
6
|
-
words and structures that better support BDD.
|
3
|
+
RSpec is a Behaviour Driven Development framework with tools to express User Stories
|
4
|
+
with Executable Scenarios and Executable Examples at the code level.
|
7
5
|
|
8
|
-
RSpec ships with
|
6
|
+
RSpec ships with several modules:
|
7
|
+
|
8
|
+
Spec::Story provides a framework for expressing User Stories
|
9
|
+
|
10
|
+
Spec::Example provides a framework for expressing code Examples
|
9
11
|
|
10
12
|
Spec::Matchers provides Expression Matchers for use with Spec::Expectations
|
11
13
|
and Spec::Mocks.
|
@@ -18,9 +20,6 @@ can do things like:
|
|
18
20
|
Spec::Mocks supports creating Mock Objects, Stubs, and adding Mock/Stub
|
19
21
|
behaviour to your existing objects.
|
20
22
|
|
21
|
-
Spec::Runner provides a very small but powerful DSL for writing executable
|
22
|
-
examples of how your code should work.
|
23
|
-
|
24
23
|
== Installation
|
25
24
|
|
26
25
|
The simplest approach is to install the gem:
|
@@ -60,7 +59,6 @@ Once those are all installed, you should be able to run the suite with the follo
|
|
60
59
|
* cd ..
|
61
60
|
* rake pre_commit
|
62
61
|
|
63
|
-
|
64
62
|
Note that RSpec itself - once built - doesn't have any dependencies outside the Ruby core
|
65
63
|
and stdlib - with a few exceptions:
|
66
64
|
|
@@ -69,3 +67,6 @@ and stdlib - with a few exceptions:
|
|
69
67
|
* The Spec::Rake::SpecTask needs RCov if RCov is enabled in the task.
|
70
68
|
|
71
69
|
See http://rspec.rubyforge.org for further documentation.
|
70
|
+
|
71
|
+
== Contributing
|
72
|
+
|
data/Rakefile
CHANGED
@@ -4,6 +4,7 @@ require 'rake/gempackagetask'
|
|
4
4
|
require 'rake/contrib/rubyforgepublisher'
|
5
5
|
require 'rake/clean'
|
6
6
|
require 'rake/rdoctask'
|
7
|
+
require 'rake/testtask'
|
7
8
|
require 'spec/version'
|
8
9
|
dir = File.dirname(__FILE__)
|
9
10
|
$LOAD_PATH.unshift(File.expand_path("#{dir}/../pre_commit/lib"))
|
@@ -11,7 +12,6 @@ require "pre_commit"
|
|
11
12
|
|
12
13
|
# Some of the tasks are in separate files since they are also part of the website documentation
|
13
14
|
load File.dirname(__FILE__) + '/rake_tasks/examples.rake'
|
14
|
-
load File.dirname(__FILE__) + '/rake_tasks/examples_specdoc.rake'
|
15
15
|
load File.dirname(__FILE__) + '/rake_tasks/examples_with_rcov.rake'
|
16
16
|
load File.dirname(__FILE__) + '/rake_tasks/failing_examples_with_html.rake'
|
17
17
|
load File.dirname(__FILE__) + '/rake_tasks/verify_rcov.rake'
|
@@ -24,42 +24,36 @@ PKG_FILES = FileList[
|
|
24
24
|
'lib/**/*.rb',
|
25
25
|
'spec/**/*.rb',
|
26
26
|
'examples/**/*',
|
27
|
-
'plugins/**/*'
|
27
|
+
'plugins/**/*',
|
28
|
+
'stories/**/*'
|
28
29
|
]
|
29
|
-
FileUtils.touch(File.dirname(__FILE__) + '/previous_failures.txt')
|
30
30
|
|
31
31
|
task :default => [:verify_rcov]
|
32
|
+
task :verify_rcov => [:spec, :stories]
|
32
33
|
|
33
34
|
desc "Run all specs"
|
34
35
|
Spec::Rake::SpecTask.new do |t|
|
35
|
-
t.spec_files = FileList[
|
36
|
-
'spec/**/*_spec.rb',
|
37
|
-
'../RSpec.tmbundle/Support/spec/*_spec.rb'
|
38
|
-
# TODO: get these in too - need to fix coverage
|
39
|
-
# '../spec_ui/spec/**/*_spec.rb'
|
40
|
-
]
|
36
|
+
t.spec_files = FileList['spec/**/*_spec.rb']
|
41
37
|
t.spec_opts = ['--options', 'spec.opts']
|
42
|
-
|
43
|
-
|
44
|
-
|
38
|
+
unless ENV['NO_RCOV']
|
39
|
+
t.rcov = true
|
40
|
+
t.rcov_dir = '../doc/output/coverage'
|
41
|
+
t.rcov_opts = ['--exclude', 'spec\/spec,bin\/spec,examples,\/var\/lib\/gems,\/Library\/Ruby,\.autotest']
|
42
|
+
end
|
45
43
|
end
|
46
44
|
|
47
|
-
desc "Run all
|
48
|
-
|
49
|
-
|
50
|
-
|
51
|
-
|
52
|
-
'
|
53
|
-
|
54
|
-
t.spec_opts = ['--options', 'spec.opts']
|
55
|
-
t.rcov = true
|
56
|
-
t.rcov_dir = '../doc/output/coverage'
|
57
|
-
t.rcov_opts = ['--exclude', 'spec\/spec,bin\/spec,examples']
|
45
|
+
desc "Run all stories"
|
46
|
+
task :stories do
|
47
|
+
html = 'story_server/prototype/rspec_stories.html'
|
48
|
+
ruby "stories/all.rb --colour --format plain --format html:#{html}"
|
49
|
+
unless IO.read(html) =~ /<span class="param">/m
|
50
|
+
raise 'highlighted parameters are broken in story HTML'
|
51
|
+
end
|
58
52
|
end
|
59
53
|
|
60
54
|
desc "Run all specs and store html output in doc/output/report.html"
|
61
55
|
Spec::Rake::SpecTask.new('spec_html') do |t|
|
62
|
-
t.spec_files = FileList['spec/**/*_spec.rb', '
|
56
|
+
t.spec_files = FileList['spec/**/*_spec.rb', '../../RSpec.tmbundle/Support/spec/*_spec.rb']
|
63
57
|
t.spec_opts = ['--format html:../doc/output/report.html','--backtrace']
|
64
58
|
end
|
65
59
|
|
@@ -68,21 +62,11 @@ Spec::Rake::SpecTask.new('failing_examples') do |t|
|
|
68
62
|
t.spec_files = FileList['failing_examples/**/*_spec.rb']
|
69
63
|
end
|
70
64
|
|
71
|
-
desc 'Generate HTML documentation for website'
|
72
|
-
task :webgen do
|
73
|
-
core.webgen
|
74
|
-
end
|
75
|
-
|
76
65
|
desc 'Generate RDoc'
|
77
66
|
rd = Rake::RDocTask.new do |rdoc|
|
78
67
|
rdoc.rdoc_dir = '../doc/output/rdoc'
|
79
68
|
rdoc.options << '--title' << 'RSpec' << '--line-numbers' << '--inline-source' << '--main' << 'README'
|
80
|
-
rdoc.rdoc_files.include('README', 'CHANGES', 'MIT-LICENSE', '
|
81
|
-
end
|
82
|
-
|
83
|
-
desc "Generate EXAMPLES.rb"
|
84
|
-
task :rdoc do
|
85
|
-
core.rdoc
|
69
|
+
rdoc.rdoc_files.include('README', 'CHANGES', 'MIT-LICENSE', 'UPGRADE', 'lib/**/*.rb')
|
86
70
|
end
|
87
71
|
|
88
72
|
spec = Gem::Specification.new do |s|
|
@@ -110,6 +94,7 @@ spec = Gem::Specification.new do |s|
|
|
110
94
|
s.author = "RSpec Development Team"
|
111
95
|
s.email = "rspec-devel@rubyforge.org"
|
112
96
|
s.homepage = "http://rspec.rubyforge.org"
|
97
|
+
s.platform = Gem::Platform::RUBY
|
113
98
|
s.rubyforge_project = "rspec"
|
114
99
|
end
|
115
100
|
|
@@ -177,9 +162,7 @@ task(:pre_commit) {core.pre_commit}
|
|
177
162
|
desc "Build the website, but do not publish it"
|
178
163
|
task(:website) {core.website}
|
179
164
|
|
180
|
-
task
|
181
|
-
core.rdoc_rails
|
182
|
-
end
|
165
|
+
task(:rdoc_rails) {core.rdoc_rails}
|
183
166
|
|
184
167
|
task :verify_user do
|
185
168
|
raise "RUBYFORGE_USER environment variable not set!" unless ENV['RUBYFORGE_USER']
|
@@ -231,24 +214,14 @@ task :package_tmbundle do
|
|
231
214
|
end
|
232
215
|
task :pkg => :package_tmbundle
|
233
216
|
|
234
|
-
desc "Package the Spec::Ui gem"
|
235
|
-
task :package_spec_ui do
|
236
|
-
Dir.chdir '../spec_ui' do
|
237
|
-
`rake clobber gem`
|
238
|
-
end
|
239
|
-
end
|
240
|
-
task :pkg => :package_spec_ui
|
241
|
-
|
242
217
|
desc "Publish gem+tgz+zip on RubyForge. You must make sure lib/version.rb is aligned with the CHANGELOG file"
|
243
218
|
task :publish_packages => [:verify_user, :package] do
|
244
|
-
require File.dirname(__FILE__) + '/../spec_ui/lib/spec/ui/version'
|
245
219
|
release_files = FileList[
|
246
220
|
"pkg/#{PKG_FILE_NAME}.gem",
|
247
221
|
"pkg/#{PKG_FILE_NAME}.tgz",
|
248
222
|
"pkg/rspec_on_rails-#{PKG_VERSION}.tgz",
|
249
223
|
"pkg/#{PKG_FILE_NAME}.zip",
|
250
|
-
"pkg/RSpec-#{PKG_VERSION}.tmbundle.tgz"
|
251
|
-
"../spec_ui/pkg/spec_ui-#{Spec::Ui::VERSION::STRING}.gem"
|
224
|
+
"pkg/RSpec-#{PKG_VERSION}.tmbundle.tgz"
|
252
225
|
]
|
253
226
|
unless Spec::VERSION::RELEASE_CANDIDATE
|
254
227
|
require 'meta_project'
|
data/bin/spec
CHANGED
data/bin/spec_translator
CHANGED
@@ -1,8 +1,8 @@
|
|
1
|
-
#!/usr/bin/env ruby
|
2
|
-
raise "\n\nUsage: spec_translator from_dir to_dir\n\n" if ARGV.size != 2
|
3
|
-
$LOAD_PATH.unshift(File.expand_path(File.dirname(__FILE__) + "/../lib"))
|
4
|
-
require 'spec/translator'
|
5
|
-
t = ::Spec::Translator.new
|
6
|
-
from = ARGV[0]
|
7
|
-
to = ARGV[1]
|
8
|
-
t.translate(from, to)
|
1
|
+
#!/usr/bin/env ruby
|
2
|
+
raise "\n\nUsage: spec_translator from_dir to_dir\n\n" if ARGV.size != 2
|
3
|
+
$LOAD_PATH.unshift(File.expand_path(File.dirname(__FILE__) + "/../lib"))
|
4
|
+
require 'spec/translator'
|
5
|
+
t = ::Spec::Translator.new
|
6
|
+
from = ARGV[0]
|
7
|
+
to = ARGV[1]
|
8
|
+
t.translate(from, to)
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
@@ -0,0 +1,28 @@
|
|
1
|
+
class MultiThreadedExampleGroupRunner < Spec::Runner::ExampleGroupRunner
|
2
|
+
def initialize(options, arg)
|
3
|
+
super(options)
|
4
|
+
# configure these
|
5
|
+
@thread_count = 4
|
6
|
+
@thread_wait = 0
|
7
|
+
end
|
8
|
+
|
9
|
+
def run
|
10
|
+
@threads = []
|
11
|
+
q = Queue.new
|
12
|
+
example_groups.each { |b| q << b}
|
13
|
+
success = true
|
14
|
+
@thread_count.times do
|
15
|
+
@threads << Thread.new(q) do |queue|
|
16
|
+
while not queue.empty?
|
17
|
+
example_group = queue.pop
|
18
|
+
success &= example_group.suite.run(nil)
|
19
|
+
end
|
20
|
+
end
|
21
|
+
sleep @thread_wait
|
22
|
+
end
|
23
|
+
@threads.each {|t| t.join}
|
24
|
+
success
|
25
|
+
end
|
26
|
+
end
|
27
|
+
|
28
|
+
MultiThreadedBehaviourRunner = MultiThreadedExampleGroupRunner
|
@@ -0,0 +1,36 @@
|
|
1
|
+
require File.dirname(__FILE__) + '/spec_helper'
|
2
|
+
require File.dirname(__FILE__) + '/stack'
|
3
|
+
|
4
|
+
class StackExamples < Spec::ExampleGroup
|
5
|
+
describe(Stack)
|
6
|
+
before(:each) do
|
7
|
+
@stack = Stack.new
|
8
|
+
end
|
9
|
+
end
|
10
|
+
|
11
|
+
class EmptyStackExamples < StackExamples
|
12
|
+
describe("when empty")
|
13
|
+
it "should be empty" do
|
14
|
+
@stack.should be_empty
|
15
|
+
end
|
16
|
+
end
|
17
|
+
|
18
|
+
class AlmostFullStackExamples < StackExamples
|
19
|
+
describe("when almost full")
|
20
|
+
before(:each) do
|
21
|
+
(1..9).each {|n| @stack.push n}
|
22
|
+
end
|
23
|
+
it "should be full" do
|
24
|
+
@stack.should_not be_full
|
25
|
+
end
|
26
|
+
end
|
27
|
+
|
28
|
+
class FullStackExamples < StackExamples
|
29
|
+
describe("when full")
|
30
|
+
before(:each) do
|
31
|
+
(1..10).each {|n| @stack.push n}
|
32
|
+
end
|
33
|
+
it "should be full" do
|
34
|
+
@stack.should be_full
|
35
|
+
end
|
36
|
+
end
|