rspec 1.2.2 → 1.2.3
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/History.rdoc +31 -1
- data/Manifest.txt +14 -12
- data/Rakefile +1 -1
- data/Upgrade.rdoc +43 -3
- data/examples/failing/failing_implicit_docstrings_example.rb +5 -5
- data/examples/passing/implicit_docstrings_example.rb +3 -3
- data/features/before_and_after_blocks/before_and_after_blocks.feature +20 -21
- data/features/example_groups/example_group_with_should_methods.feature +20 -8
- data/features/example_groups/implicit_docstrings.feature +36 -20
- data/features/example_groups/nested_groups.feature +25 -10
- data/features/extensions/custom_example_group.feature +19 -0
- data/features/formatters/custom_formatter.feature +30 -0
- data/features/heckle/heckle.feature +7 -7
- data/features/interop/examples_and_tests_together.feature +63 -14
- data/features/interop/rspec_output.feature +25 -0
- data/features/interop/test_but_not_test_unit.feature +19 -7
- data/features/interop/test_case_with_should_methods.feature +37 -8
- data/features/matchers/{create_matcher.feature → define_matcher.feature} +54 -30
- data/features/matchers/{create_matcher_outside_rspec.feature → define_matcher_outside_rspec.feature} +7 -7
- data/features/mock_framework_integration/use_flexmock.feature +3 -3
- data/features/mock_framework_integration/use_mocha.feature +3 -3
- data/features/mock_framework_integration/use_rr.feature +3 -3
- data/features/mocks/mix_stubs_and_mocks.feature +4 -4
- data/features/pending/pending_examples.feature +18 -18
- data/features/runner/specify_line_number.feature +32 -0
- data/features/step_definitions/running_rspec_steps.rb +41 -0
- data/features/subject/explicit_subject.feature +4 -4
- data/features/subject/implicit_subject.feature +4 -4
- data/features/support/env.rb +64 -11
- data/features/support/matchers/smart_match.rb +10 -35
- data/lib/spec.rb +1 -0
- data/lib/spec/deprecation.rb +40 -0
- data/lib/spec/dsl/main.rb +10 -5
- data/lib/spec/example.rb +1 -27
- data/lib/spec/example/args_and_options.rb +27 -0
- data/lib/spec/example/before_and_after_hooks.rb +30 -21
- data/lib/spec/example/errors.rb +8 -18
- data/lib/spec/example/example_group_factory.rb +0 -4
- data/lib/spec/example/example_group_methods.rb +27 -41
- data/lib/spec/example/example_group_proxy.rb +12 -22
- data/lib/spec/example/example_methods.rb +8 -18
- data/lib/spec/example/example_proxy.rb +4 -4
- data/lib/spec/example/pending.rb +3 -4
- data/lib/spec/example/predicate_matchers.rb +1 -1
- data/lib/spec/example/subject.rb +2 -0
- data/lib/spec/expectations.rb +1 -26
- data/lib/spec/expectations/extensions.rb +1 -1
- data/lib/spec/expectations/extensions/kernel.rb +52 -0
- data/lib/spec/expectations/handler.rb +21 -10
- data/lib/spec/matchers/be.rb +3 -3
- data/lib/spec/matchers/be_close.rb +17 -21
- data/lib/spec/matchers/be_instance_of.rb +7 -26
- data/lib/spec/matchers/be_kind_of.rb +7 -26
- data/lib/spec/matchers/dsl.rb +9 -4
- data/lib/spec/matchers/eql.rb +24 -25
- data/lib/spec/matchers/equal.rb +25 -25
- data/lib/spec/matchers/exist.rb +5 -21
- data/lib/spec/matchers/include.rb +22 -44
- data/lib/spec/matchers/match.rb +5 -25
- data/lib/spec/matchers/match_array.rb +8 -4
- data/lib/spec/matchers/matcher.rb +13 -2
- data/lib/spec/matchers/pretty.rb +1 -0
- data/lib/spec/matchers/simple_matcher.rb +2 -2
- data/lib/spec/mocks/mock.rb +10 -10
- data/lib/spec/mocks/spec_methods.rb +1 -1
- data/lib/spec/runner/configuration.rb +53 -42
- data/lib/spec/{expectations → runner}/differs/default.rb +0 -0
- data/lib/spec/{expectations → runner}/differs/load-diff-lcs.rb +0 -0
- data/lib/spec/runner/drb_command_line.rb +1 -1
- data/lib/spec/runner/example_group_runner.rb +0 -12
- data/lib/spec/runner/formatter/base_formatter.rb +77 -30
- data/lib/spec/runner/formatter/base_text_formatter.rb +19 -24
- data/lib/spec/runner/formatter/failing_example_groups_formatter.rb +1 -1
- data/lib/spec/runner/formatter/html_formatter.rb +4 -6
- data/lib/spec/runner/formatter/nested_text_formatter.rb +2 -2
- data/lib/spec/runner/formatter/no_op_method_missing.rb +21 -0
- data/lib/spec/runner/formatter/profile_formatter.rb +0 -4
- data/lib/spec/runner/formatter/progress_bar_formatter.rb +4 -5
- data/lib/spec/runner/formatter/silent_formatter.rb +10 -0
- data/lib/spec/runner/formatter/specdoc_formatter.rb +2 -2
- data/lib/spec/runner/option_parser.rb +14 -7
- data/lib/spec/runner/options.rb +17 -7
- data/lib/spec/runner/reporter.rb +69 -64
- data/lib/spec/version.rb +1 -1
- data/spec/spec/dsl/main_spec.rb +7 -0
- data/spec/spec/example/example_group_methods_spec.rb +16 -32
- data/spec/spec/example/example_group_proxy_spec.rb +25 -5
- data/spec/spec/example/example_group_spec.rb +2 -2
- data/spec/spec/example/example_methods_spec.rb +19 -24
- data/spec/spec/example/example_proxy_spec.rb +11 -1
- data/spec/spec/example/pending_module_spec.rb +2 -108
- data/spec/spec/example/predicate_matcher_spec.rb +23 -3
- data/spec/spec/expectations/extensions/object_spec.rb +9 -9
- data/spec/spec/expectations/fail_with_spec.rb +13 -13
- data/spec/spec/expectations/handler_spec.rb +44 -15
- data/spec/spec/matchers/be_close_spec.rb +9 -0
- data/spec/spec/matchers/be_instance_of_spec.rb +6 -4
- data/spec/spec/matchers/be_kind_of_spec.rb +5 -3
- data/spec/spec/matchers/be_spec.rb +1 -5
- data/spec/spec/matchers/compatibility_spec.rb +1 -1
- data/spec/spec/matchers/dsl_spec.rb +10 -1
- data/spec/spec/matchers/eql_spec.rb +8 -4
- data/spec/spec/matchers/equal_spec.rb +8 -4
- data/spec/spec/matchers/exist_spec.rb +1 -1
- data/spec/spec/matchers/include_spec.rb +1 -1
- data/spec/spec/matchers/match_array_spec.rb +26 -1
- data/spec/spec/matchers/match_spec.rb +2 -2
- data/spec/spec/matchers/matcher_methods_spec.rb +0 -3
- data/spec/spec/matchers/matcher_spec.rb +53 -0
- data/spec/spec/matchers/operator_matcher_spec.rb +1 -1
- data/spec/spec/mocks/mock_spec.rb +6 -0
- data/spec/spec/runner/configuration_spec.rb +11 -1
- data/spec/spec/runner/drb_command_line_spec.rb +13 -1
- data/spec/spec/runner/example_group_runner_spec.rb +0 -7
- data/spec/spec/runner/formatter/base_formatter_spec.rb +19 -12
- data/spec/spec/runner/formatter/base_text_formatter_spec.rb +2 -2
- data/spec/spec/runner/formatter/failing_example_groups_formatter_spec.rb +4 -4
- data/spec/spec/runner/formatter/failing_examples_formatter_spec.rb +2 -2
- data/spec/spec/runner/formatter/html_formatted-1.8.6.html +31 -34
- data/spec/spec/runner/formatter/html_formatter_spec.rb +20 -0
- data/spec/spec/runner/formatter/nested_text_formatter_spec.rb +20 -20
- data/spec/spec/runner/formatter/profile_formatter_spec.rb +22 -3
- data/spec/spec/runner/formatter/progress_bar_formatter_spec.rb +24 -3
- data/spec/spec/runner/formatter/specdoc_formatter_spec.rb +6 -6
- data/spec/spec/runner/formatter/text_mate_formatted-1.8.6.html +25 -28
- data/spec/spec/runner/formatter/text_mate_formatter_spec.rb +2 -2
- data/spec/spec/runner/option_parser_spec.rb +108 -40
- data/spec/spec/runner/reporter_spec.rb +16 -17
- data/spec/spec_helper.rb +4 -1
- metadata +20 -18
- data/features/example_groups/output.feature +0 -20
- data/features/step_definitions/running_rspec.rb +0 -69
- data/lib/spec/expectations/extensions/object.rb +0 -63
- data/resources/spec/example_group_with_should_methods.rb +0 -12
- data/resources/spec/simple_spec.rb +0 -8
- data/resources/test/spec_and_test_together.rb +0 -56
- data/resources/test/spec_including_test_but_not_unit.rb +0 -11
- data/resources/test/test_case_with_should_methods.rb +0 -29
    
        data/History.rdoc
    CHANGED
    
    | @@ -1,3 +1,33 @@ | |
| 1 | 
            +
            === Version 1.2.3
         | 
| 2 | 
            +
             | 
| 3 | 
            +
            * deprecations
         | 
| 4 | 
            +
             | 
| 5 | 
            +
              * BaseFormatter#add_example_group (use #example_group_started instead)
         | 
| 6 | 
            +
              * ExampleGroupProxy#backtrace (use #location instead)
         | 
| 7 | 
            +
              * ExampleProxy#backtrace (use #location instead)
         | 
| 8 | 
            +
              * BaseFormatter#example_pending now expects two arguments. The third
         | 
| 9 | 
            +
                argument is deprecated.
         | 
| 10 | 
            +
              * ExampleGroupProxy#filtered_description. This was only used in one place
         | 
| 11 | 
            +
                internally, and was a confusing solution to the problem. If you've got a
         | 
| 12 | 
            +
                custom formatter that uses it, you can just use
         | 
| 13 | 
            +
                ExampleGroupProxy#description and modify it directly.
         | 
| 14 | 
            +
              * predicate_matchers (use the new Matcher DSL instead)
         | 
| 15 | 
            +
              * Spec::Matchers.create (use Spec::Matchers.define instead)
         | 
| 16 | 
            +
             | 
| 17 | 
            +
            * enhancements
         | 
| 18 | 
            +
             | 
| 19 | 
            +
              * support for specifying single examples with colon syntax. Closes #712.
         | 
| 20 | 
            +
                (Ben Mabey)
         | 
| 21 | 
            +
                * you can now say "spec some_spec.rb:12" in addition to "spec some_spec.rb
         | 
| 22 | 
            +
                  --line 12"
         | 
| 23 | 
            +
              * run specs locally with --drb if no drb server is running. Closes #780.
         | 
| 24 | 
            +
                * still prints "No server running" to stderr
         | 
| 25 | 
            +
             | 
| 26 | 
            +
            * bug fixes
         | 
| 27 | 
            +
             | 
| 28 | 
            +
              * support expectations on DelegateClass (Clifford T. Matthews). Closes #48.
         | 
| 29 | 
            +
              * Fixed match_array blows up if elements can't be sorted (Jeff Dean). Closes #779.
         | 
| 30 | 
            +
             | 
| 1 31 | 
             
            === Version 1.2.2 / 2009-03-22
         | 
| 2 32 |  | 
| 3 33 | 
             
            Bug-fix release (fixes regression introduced in 1.2.1)
         | 
| @@ -14,7 +44,7 @@ rspec-1.2.0. | |
| 14 44 |  | 
| 15 45 | 
             
            See Upgrade.rdoc for information about upgrading to rspec-1.2.1
         | 
| 16 46 |  | 
| 17 | 
            -
            *  | 
| 47 | 
            +
            * enhancements
         | 
| 18 48 |  | 
| 19 49 | 
             
              * matchers, including the new DSL, easily added to your test/unit tests
         | 
| 20 50 | 
             
              * added support for 0 to n args in matcher DSL
         | 
    
        data/Manifest.txt
    CHANGED
    
    | @@ -60,19 +60,22 @@ features/before_and_after_blocks/before_and_after_blocks.feature | |
| 60 60 | 
             
            features/example_groups/example_group_with_should_methods.feature
         | 
| 61 61 | 
             
            features/example_groups/implicit_docstrings.feature
         | 
| 62 62 | 
             
            features/example_groups/nested_groups.feature
         | 
| 63 | 
            -
            features/ | 
| 63 | 
            +
            features/extensions/custom_example_group.feature
         | 
| 64 | 
            +
            features/formatters/custom_formatter.feature
         | 
| 64 65 | 
             
            features/heckle/heckle.feature
         | 
| 65 66 | 
             
            features/interop/examples_and_tests_together.feature
         | 
| 67 | 
            +
            features/interop/rspec_output.feature
         | 
| 66 68 | 
             
            features/interop/test_but_not_test_unit.feature
         | 
| 67 69 | 
             
            features/interop/test_case_with_should_methods.feature
         | 
| 68 | 
            -
            features/matchers/ | 
| 69 | 
            -
            features/matchers/ | 
| 70 | 
            +
            features/matchers/define_matcher.feature
         | 
| 71 | 
            +
            features/matchers/define_matcher_outside_rspec.feature
         | 
| 70 72 | 
             
            features/mock_framework_integration/use_flexmock.feature
         | 
| 71 73 | 
             
            features/mock_framework_integration/use_mocha.feature
         | 
| 72 74 | 
             
            features/mock_framework_integration/use_rr.feature
         | 
| 73 75 | 
             
            features/mocks/mix_stubs_and_mocks.feature
         | 
| 74 76 | 
             
            features/pending/pending_examples.feature
         | 
| 75 | 
            -
            features/ | 
| 77 | 
            +
            features/runner/specify_line_number.feature
         | 
| 78 | 
            +
            features/step_definitions/running_rspec_steps.rb
         | 
| 76 79 | 
             
            features/subject/explicit_subject.feature
         | 
| 77 80 | 
             
            features/subject/implicit_subject.feature
         | 
| 78 81 | 
             
            features/support/env.rb
         | 
| @@ -86,9 +89,11 @@ lib/spec/adapters/mock_frameworks/mocha.rb | |
| 86 89 | 
             
            lib/spec/adapters/mock_frameworks/rr.rb
         | 
| 87 90 | 
             
            lib/spec/adapters/mock_frameworks/rspec.rb
         | 
| 88 91 | 
             
            lib/spec/autorun.rb
         | 
| 92 | 
            +
            lib/spec/deprecation.rb
         | 
| 89 93 | 
             
            lib/spec/dsl.rb
         | 
| 90 94 | 
             
            lib/spec/dsl/main.rb
         | 
| 91 95 | 
             
            lib/spec/example.rb
         | 
| 96 | 
            +
            lib/spec/example/args_and_options.rb
         | 
| 92 97 | 
             
            lib/spec/example/before_and_after_hooks.rb
         | 
| 93 98 | 
             
            lib/spec/example/errors.rb
         | 
| 94 99 | 
             
            lib/spec/example/example_group.rb
         | 
| @@ -105,11 +110,9 @@ lib/spec/example/predicate_matchers.rb | |
| 105 110 | 
             
            lib/spec/example/shared_example_group.rb
         | 
| 106 111 | 
             
            lib/spec/example/subject.rb
         | 
| 107 112 | 
             
            lib/spec/expectations.rb
         | 
| 108 | 
            -
            lib/spec/expectations/differs/default.rb
         | 
| 109 | 
            -
            lib/spec/expectations/differs/load-diff-lcs.rb
         | 
| 110 113 | 
             
            lib/spec/expectations/errors.rb
         | 
| 111 114 | 
             
            lib/spec/expectations/extensions.rb
         | 
| 112 | 
            -
            lib/spec/expectations/extensions/ | 
| 115 | 
            +
            lib/spec/expectations/extensions/kernel.rb
         | 
| 113 116 | 
             
            lib/spec/expectations/handler.rb
         | 
| 114 117 | 
             
            lib/spec/interop/test.rb
         | 
| 115 118 | 
             
            lib/spec/interop/test/unit/autorunner.rb
         | 
| @@ -169,6 +172,8 @@ lib/spec/runner/backtrace_tweaker.rb | |
| 169 172 | 
             
            lib/spec/runner/class_and_arguments_parser.rb
         | 
| 170 173 | 
             
            lib/spec/runner/command_line.rb
         | 
| 171 174 | 
             
            lib/spec/runner/configuration.rb
         | 
| 175 | 
            +
            lib/spec/runner/differs/default.rb
         | 
| 176 | 
            +
            lib/spec/runner/differs/load-diff-lcs.rb
         | 
| 172 177 | 
             
            lib/spec/runner/drb_command_line.rb
         | 
| 173 178 | 
             
            lib/spec/runner/example_group_runner.rb
         | 
| 174 179 | 
             
            lib/spec/runner/extensions/kernel.rb
         | 
| @@ -178,8 +183,10 @@ lib/spec/runner/formatter/failing_example_groups_formatter.rb | |
| 178 183 | 
             
            lib/spec/runner/formatter/failing_examples_formatter.rb
         | 
| 179 184 | 
             
            lib/spec/runner/formatter/html_formatter.rb
         | 
| 180 185 | 
             
            lib/spec/runner/formatter/nested_text_formatter.rb
         | 
| 186 | 
            +
            lib/spec/runner/formatter/no_op_method_missing.rb
         | 
| 181 187 | 
             
            lib/spec/runner/formatter/profile_formatter.rb
         | 
| 182 188 | 
             
            lib/spec/runner/formatter/progress_bar_formatter.rb
         | 
| 189 | 
            +
            lib/spec/runner/formatter/silent_formatter.rb
         | 
| 183 190 | 
             
            lib/spec/runner/formatter/snippet_extractor.rb
         | 
| 184 191 | 
             
            lib/spec/runner/formatter/specdoc_formatter.rb
         | 
| 185 192 | 
             
            lib/spec/runner/formatter/text_mate_formatter.rb
         | 
| @@ -196,11 +203,6 @@ resources/rake/examples.rake | |
| 196 203 | 
             
            resources/rake/examples_with_rcov.rake
         | 
| 197 204 | 
             
            resources/rake/failing_examples_with_html.rake
         | 
| 198 205 | 
             
            resources/rake/verify_rcov.rake
         | 
| 199 | 
            -
            resources/spec/example_group_with_should_methods.rb
         | 
| 200 | 
            -
            resources/spec/simple_spec.rb
         | 
| 201 | 
            -
            resources/test/spec_and_test_together.rb
         | 
| 202 | 
            -
            resources/test/spec_including_test_but_not_unit.rb
         | 
| 203 | 
            -
            resources/test/test_case_with_should_methods.rb
         | 
| 204 206 | 
             
            spec/README.jruby
         | 
| 205 207 | 
             
            spec/autotest/autotest_helper.rb
         | 
| 206 208 | 
             
            spec/autotest/autotest_matchers.rb
         | 
    
        data/Rakefile
    CHANGED
    
    | @@ -13,7 +13,7 @@ Hoe.new('rspec', Spec::VERSION::STRING) do |p| | |
| 13 13 | 
             
              p.description = "Behaviour Driven Development for Ruby."
         | 
| 14 14 | 
             
              p.rubyforge_name = 'rspec'
         | 
| 15 15 | 
             
              p.developer('RSpec Development Team', 'rspec-devel@rubyforge.org')
         | 
| 16 | 
            -
              p.extra_dev_deps = [["cucumber",">= 0. | 
| 16 | 
            +
              p.extra_dev_deps = [["cucumber",">= 0.2.2"]]
         | 
| 17 17 | 
             
              p.remote_rdoc_dir = "rspec/#{Spec::VERSION::STRING}"
         | 
| 18 18 | 
             
              p.rspec_options = ['--options', 'spec/spec.opts']
         | 
| 19 19 | 
             
              p.history_file = 'History.rdoc'
         | 
    
        data/Upgrade.rdoc
    CHANGED
    
    | @@ -1,4 +1,44 @@ | |
| 1 | 
            -
            = Upgrade to rspec-1.2. | 
| 1 | 
            +
            = Upgrade to rspec-1.2.3
         | 
| 2 | 
            +
             | 
| 3 | 
            +
            == What's Changed
         | 
| 4 | 
            +
             | 
| 5 | 
            +
            === Matcher DSL
         | 
| 6 | 
            +
             | 
| 7 | 
            +
            Use Spec::Matchers.define instead of Spec::Matchers.create (which is now
         | 
| 8 | 
            +
            deprecated).
         | 
| 9 | 
            +
             | 
| 10 | 
            +
            === Explicit Predicate Matchers are deprecated
         | 
| 11 | 
            +
             | 
| 12 | 
            +
            With the addition of the new Matcher DSL the old, confusing, and
         | 
| 13 | 
            +
            almost-nobody-uses-it explicit predicate matcher functionality's days are now
         | 
| 14 | 
            +
            numbered.
         | 
| 15 | 
            +
             | 
| 16 | 
            +
            If you're not familiar with this feature, don't worry about it. If you have anything
         | 
| 17 | 
            +
            that looks like this:
         | 
| 18 | 
            +
             | 
| 19 | 
            +
                predicate_matchers[:swim] = :can_swim?
         | 
| 20 | 
            +
              
         | 
| 21 | 
            +
            Or this
         | 
| 22 | 
            +
             | 
| 23 | 
            +
                config.predicate_matchers[:swim] = :can_swim?
         | 
| 24 | 
            +
              
         | 
| 25 | 
            +
            Change it to this:
         | 
| 26 | 
            +
             | 
| 27 | 
            +
                Spec::Matchers.define :swim do
         | 
| 28 | 
            +
                  match do |potential_swimmer|
         | 
| 29 | 
            +
                    potential_swimmer.can_swim?
         | 
| 30 | 
            +
                  end
         | 
| 31 | 
            +
                end
         | 
| 32 | 
            +
             | 
| 33 | 
            +
            == Custom Formatters
         | 
| 34 | 
            +
             | 
| 35 | 
            +
            If you have an custom formatter, the <tt>add_example_group</tt> method has
         | 
| 36 | 
            +
            been changed to <tt>example_group_started</tt>, and kept as an alias so your
         | 
| 37 | 
            +
            formatters will still work. Though not yet, <tt>add_example_group</tt> will be
         | 
| 38 | 
            +
            deprecated in a future minor release, and removed in a future major release,
         | 
| 39 | 
            +
            so we recommend you make this change now.
         | 
| 40 | 
            +
             | 
| 41 | 
            +
            = Upgrade to rspec-1.2.2
         | 
| 2 42 |  | 
| 3 43 | 
             
            == What's Changed
         | 
| 4 44 |  | 
| @@ -99,7 +139,7 @@ We'll still support the simple_matcher method, so never fear if you're using | |
| 99 139 | 
             
            that, but we recommend that you start developing your new matchers with this
         | 
| 100 140 | 
             
            new syntax.
         | 
| 101 141 |  | 
| 102 | 
            -
                Spec::Matchers.create  | 
| 142 | 
            +
                Spec::Matchers.create :be_a_multiple_of do |smaller|
         | 
| 103 143 | 
             
                  match do |bigger|
         | 
| 104 144 | 
             
                    bigger % smaller == 0
         | 
| 105 145 | 
             
                  end
         | 
| @@ -107,4 +147,4 @@ new syntax. | |
| 107 147 |  | 
| 108 148 | 
             
                9.should be_a_multiple_of(3)
         | 
| 109 149 |  | 
| 110 | 
            -
            See <tt>features/matchers/ | 
| 150 | 
            +
            See <tt>features/matchers/define_matcher.feature</tt> for more examples
         | 
| @@ -3,17 +3,17 @@ require File.dirname(__FILE__) + '/spec_helper' | |
| 3 3 | 
             
            # Run spec w/ -fs to see the output of this file
         | 
| 4 4 |  | 
| 5 5 | 
             
            describe "Failing examples with no descriptions" do
         | 
| 6 | 
            -
             | 
| 6 | 
            +
             | 
| 7 7 | 
             
              # description is auto-generated as "should equal(5)" based on the last #should
         | 
| 8 8 | 
             
              it do
         | 
| 9 9 | 
             
                3.should equal(2)
         | 
| 10 10 | 
             
                5.should equal(5)
         | 
| 11 11 | 
             
              end
         | 
| 12 | 
            -
             | 
| 12 | 
            +
             | 
| 13 13 | 
             
              it { 3.should be > 5 }
         | 
| 14 | 
            -
             | 
| 14 | 
            +
             | 
| 15 15 | 
             
              it { ["a"].should include("b") }
         | 
| 16 | 
            -
             | 
| 16 | 
            +
             | 
| 17 17 | 
             
              it { [1,2,3].should_not respond_to(:size) }
         | 
| 18 | 
            -
             | 
| 18 | 
            +
             | 
| 19 19 | 
             
            end
         | 
| @@ -5,11 +5,11 @@ require File.dirname(__FILE__) + '/spec_helper' | |
| 5 5 | 
             
            describe "Examples with no docstrings generate their own:" do
         | 
| 6 6 |  | 
| 7 7 | 
             
              specify { 3.should be < 5 }
         | 
| 8 | 
            -
             | 
| 8 | 
            +
             | 
| 9 9 | 
             
              specify { ["a"].should include("a") }
         | 
| 10 | 
            -
             | 
| 10 | 
            +
             | 
| 11 11 | 
             
              specify { [1,2,3].should respond_to(:size) }
         | 
| 12 | 
            -
             | 
| 12 | 
            +
             | 
| 13 13 | 
             
            end
         | 
| 14 14 |  | 
| 15 15 | 
             
            describe 1 do
         | 
| @@ -3,10 +3,10 @@ Feature: before and after blocks | |
| 3 3 | 
             
              As a developer using RSpec
         | 
| 4 4 | 
             
              I want to execute arbitrary code before and after each example
         | 
| 5 5 | 
             
              So that I can control the environment in which it is run
         | 
| 6 | 
            -
             | 
| 6 | 
            +
             | 
| 7 7 | 
             
                This is supported by the before and after methods which each take a symbol
         | 
| 8 8 | 
             
                indicating the scope, and a block of code to execute.
         | 
| 9 | 
            -
             | 
| 9 | 
            +
             | 
| 10 10 | 
             
                before(:each) blocks are run before each example
         | 
| 11 11 | 
             
                before(:all) blocks are run once before all of the examples in a group
         | 
| 12 12 | 
             
                before(:suite) blocks are run once before the entire suite
         | 
| @@ -22,14 +22,14 @@ Feature: before and after blocks | |
| 22 22 | 
             
                  after each
         | 
| 23 23 | 
             
                  after all
         | 
| 24 24 | 
             
                  after suite
         | 
| 25 | 
            -
             | 
| 25 | 
            +
             | 
| 26 26 | 
             
                Before and after blocks can be defined in the example groups to which they
         | 
| 27 27 | 
             
                apply or in a configuration. When defined in a configuration, they can be
         | 
| 28 28 | 
             
                applied to all groups or subsets of all groups defined by example group
         | 
| 29 29 | 
             
                types.
         | 
| 30 | 
            -
             | 
| 30 | 
            +
             | 
| 31 31 | 
             
              Scenario: define before(:each) block in example group
         | 
| 32 | 
            -
                Given  | 
| 32 | 
            +
                Given a file named "before_each_in_example_group_spec.rb" with:
         | 
| 33 33 | 
             
                  """
         | 
| 34 34 | 
             
                  class Thing
         | 
| 35 35 | 
             
                    def widgets
         | 
| @@ -41,27 +41,27 @@ Feature: before and after blocks | |
| 41 41 | 
             
                    before(:each) do
         | 
| 42 42 | 
             
                      @thing = Thing.new
         | 
| 43 43 | 
             
                    end
         | 
| 44 | 
            -
             | 
| 44 | 
            +
             | 
| 45 45 | 
             
                    context "initialized in before(:each)" do
         | 
| 46 46 | 
             
                      it "has 0 widgets" do
         | 
| 47 47 | 
             
                        @thing.should have(0).widgets
         | 
| 48 48 | 
             
                      end
         | 
| 49 | 
            -
             | 
| 49 | 
            +
             | 
| 50 50 | 
             
                      it "can get accept new widgets" do
         | 
| 51 51 | 
             
                        @thing.widgets << Object.new
         | 
| 52 52 | 
             
                      end
         | 
| 53 | 
            -
             | 
| 53 | 
            +
             | 
| 54 54 | 
             
                      it "does not share state across examples" do
         | 
| 55 55 | 
             
                        @thing.should have(0).widgets
         | 
| 56 56 | 
             
                      end
         | 
| 57 57 | 
             
                    end
         | 
| 58 58 | 
             
                  end
         | 
| 59 59 | 
             
                  """
         | 
| 60 | 
            -
             | 
| 60 | 
            +
                When I run "spec before_each_in_example_group_spec.rb"
         | 
| 61 61 | 
             
                Then the stdout should match "3 examples, 0 failures"
         | 
| 62 | 
            -
             | 
| 62 | 
            +
             | 
| 63 63 | 
             
              Scenario: define before(:all) block in example group
         | 
| 64 | 
            -
                Given  | 
| 64 | 
            +
                Given a file named "before_all_in_example_group_spec.rb" with:
         | 
| 65 65 | 
             
                  """
         | 
| 66 66 | 
             
                  class Thing
         | 
| 67 67 | 
             
                    def widgets
         | 
| @@ -73,27 +73,27 @@ Feature: before and after blocks | |
| 73 73 | 
             
                    before(:all) do
         | 
| 74 74 | 
             
                      @thing = Thing.new
         | 
| 75 75 | 
             
                    end
         | 
| 76 | 
            -
             | 
| 76 | 
            +
             | 
| 77 77 | 
             
                    context "initialized in before(:all)" do
         | 
| 78 78 | 
             
                      it "has 0 widgets" do
         | 
| 79 79 | 
             
                        @thing.should have(0).widgets
         | 
| 80 80 | 
             
                      end
         | 
| 81 | 
            -
             | 
| 81 | 
            +
             | 
| 82 82 | 
             
                      it "can get accept new widgets" do
         | 
| 83 83 | 
             
                        @thing.widgets << Object.new
         | 
| 84 84 | 
             
                      end
         | 
| 85 | 
            -
             | 
| 85 | 
            +
             | 
| 86 86 | 
             
                      it "shares state across examples" do
         | 
| 87 87 | 
             
                        @thing.should have(1).widgets
         | 
| 88 88 | 
             
                      end
         | 
| 89 89 | 
             
                    end
         | 
| 90 90 | 
             
                  end
         | 
| 91 91 | 
             
                  """
         | 
| 92 | 
            -
             | 
| 92 | 
            +
                When I run "spec before_all_in_example_group_spec.rb"
         | 
| 93 93 | 
             
                Then the stdout should match "3 examples, 0 failures"
         | 
| 94 | 
            -
             | 
| 94 | 
            +
             | 
| 95 95 | 
             
              Scenario: define before and after blocks in configuration
         | 
| 96 | 
            -
                Given  | 
| 96 | 
            +
                Given a file named "befores_in_configuration_spec.rb" with:
         | 
| 97 97 | 
             
                  """
         | 
| 98 98 | 
             
                  Spec::Runner.configure do |config|
         | 
| 99 99 | 
             
                    config.before(:suite) do
         | 
| @@ -125,11 +125,11 @@ Feature: before and after blocks | |
| 125 125 | 
             
                    end
         | 
| 126 126 | 
             
                  end
         | 
| 127 127 | 
             
                  """
         | 
| 128 | 
            -
                When I run  | 
| 128 | 
            +
                When I run "spec befores_in_configuration_spec.rb"
         | 
| 129 129 | 
             
                Then the stdout should match "3 examples, 0 failures"
         | 
| 130 130 |  | 
| 131 131 | 
             
              Scenario: before/after blocks are run in order
         | 
| 132 | 
            -
                Given  | 
| 132 | 
            +
                Given a file named "ensure_block_order_spec.rb" with:
         | 
| 133 133 | 
             
                  """
         | 
| 134 134 | 
             
                  Spec::Runner.configure do |config|
         | 
| 135 135 | 
             
                    config.before(:suite) do
         | 
| @@ -162,7 +162,6 @@ Feature: before and after blocks | |
| 162 162 | 
             
                    end
         | 
| 163 163 | 
             
                  end
         | 
| 164 164 | 
             
                  """
         | 
| 165 | 
            -
             | 
| 166 | 
            -
                When I run it with the spec command
         | 
| 165 | 
            +
                When I run "spec ensure_block_order_spec.rb"
         | 
| 167 166 | 
             
                Then the stdout should match /before suite\nbefore all\nbefore each\nafter each\n\.after all\n.*after suite/m
         | 
| 168 167 |  | 
| @@ -4,14 +4,26 @@ Feature: Spec::ExampleGroup with should methods | |
| 4 4 | 
             
              I want to use should_* methods in an ExampleGroup
         | 
| 5 5 | 
             
              So that I use RSpec with classes and methods that look more like RSpec examples
         | 
| 6 6 |  | 
| 7 | 
            -
              Scenario:  | 
| 8 | 
            -
                Given  | 
| 9 | 
            -
                 | 
| 10 | 
            -
                 | 
| 11 | 
            -
                And the stdout should match "2 examples, 1 failure"
         | 
| 7 | 
            +
              Scenario Outline: Example Group class with should methods
         | 
| 8 | 
            +
                Given a file named "example_group_with_should_methods.rb" with:
         | 
| 9 | 
            +
                """
         | 
| 10 | 
            +
                require 'spec/autorun'
         | 
| 12 11 |  | 
| 13 | 
            -
             | 
| 14 | 
            -
             | 
| 15 | 
            -
             | 
| 12 | 
            +
                class MySpec < Spec::ExampleGroup
         | 
| 13 | 
            +
                  def should_pass_with_should
         | 
| 14 | 
            +
                    1.should == 1
         | 
| 15 | 
            +
                  end
         | 
| 16 | 
            +
             | 
| 17 | 
            +
                  def should_fail_with_should
         | 
| 18 | 
            +
                    1.should == 2
         | 
| 19 | 
            +
                  end
         | 
| 20 | 
            +
                end
         | 
| 21 | 
            +
                """
         | 
| 22 | 
            +
                When I run "<Command> example_group_with_should_methods.rb"
         | 
| 16 23 | 
             
                Then the exit code should be 256
         | 
| 17 24 | 
             
                And the stdout should match "2 examples, 1 failure"
         | 
| 25 | 
            +
             | 
| 26 | 
            +
              Scenarios: Run with ruby and spec
         | 
| 27 | 
            +
                | Command |
         | 
| 28 | 
            +
                | ruby    |
         | 
| 29 | 
            +
                | spec    |
         | 
| @@ -4,38 +4,54 @@ Feature: implicit docstrings | |
| 4 4 | 
             
              I want examples to generate their own names
         | 
| 5 5 | 
             
              So that I can reduce duplication between example names and example code
         | 
| 6 6 |  | 
| 7 | 
            -
              Scenario: run passing examples | 
| 8 | 
            -
                Given  | 
| 7 | 
            +
              Scenario Outline: run passing examples
         | 
| 8 | 
            +
                Given a file named "implicit_docstrings_example.rb" with:
         | 
| 9 | 
            +
                """
         | 
| 10 | 
            +
                require 'spec/autorun'
         | 
| 11 | 
            +
                describe "Examples with no docstrings generate their own:" do
         | 
| 9 12 |  | 
| 10 | 
            -
             | 
| 13 | 
            +
                  specify { 3.should be < 5 }
         | 
| 11 14 |  | 
| 12 | 
            -
             | 
| 15 | 
            +
                  specify { ["a"].should include("a") }
         | 
| 16 | 
            +
             | 
| 17 | 
            +
                  specify { [1,2,3].should respond_to(:size) }
         | 
| 18 | 
            +
             | 
| 19 | 
            +
                end
         | 
| 20 | 
            +
                """
         | 
| 21 | 
            +
             | 
| 22 | 
            +
                When I run "<Command> implicit_docstrings_example.rb -fs"
         | 
| 23 | 
            +
             | 
| 24 | 
            +
                Then the stdout should match /should be < 5/
         | 
| 13 25 | 
             
                And the stdout should match /should include "a"/
         | 
| 14 26 | 
             
                And the stdout should match /should respond to #size/
         | 
| 15 27 |  | 
| 16 | 
            -
               | 
| 17 | 
            -
                 | 
| 28 | 
            +
              Scenarios: Run with ruby and spec
         | 
| 29 | 
            +
                | Command |
         | 
| 30 | 
            +
                | ruby    |
         | 
| 31 | 
            +
                | spec    |
         | 
| 18 32 |  | 
| 19 | 
            -
             | 
| 33 | 
            +
              Scenario Outline: run failing examples
         | 
| 34 | 
            +
                Given a file named "failing_implicit_docstrings_example.rb" with:
         | 
| 35 | 
            +
                """
         | 
| 36 | 
            +
                require 'spec/autorun'
         | 
| 37 | 
            +
                describe "Failing examples with no descriptions" do
         | 
| 20 38 |  | 
| 21 | 
            -
             | 
| 22 | 
            -
             | 
| 23 | 
            -
             | 
| 24 | 
            -
             | 
| 39 | 
            +
                  # description is auto-generated as "should equal(5)" based on the last #should
         | 
| 40 | 
            +
                  it do
         | 
| 41 | 
            +
                    3.should equal(2)
         | 
| 42 | 
            +
                    5.should equal(5)
         | 
| 43 | 
            +
                  end
         | 
| 25 44 |  | 
| 26 | 
            -
             | 
| 27 | 
            -
                Given the file ../../examples/passing/implicit_docstrings_example.rb
         | 
| 45 | 
            +
                  it { 3.should be > 5 }
         | 
| 28 46 |  | 
| 29 | 
            -
             | 
| 47 | 
            +
                  it { ["a"].should include("b") }
         | 
| 30 48 |  | 
| 31 | 
            -
             | 
| 32 | 
            -
                And the stdout should match /should include "a"/
         | 
| 33 | 
            -
                And the stdout should match /should respond to #size/
         | 
| 49 | 
            +
                  it { [1,2,3].should_not respond_to(:size) }
         | 
| 34 50 |  | 
| 35 | 
            -
             | 
| 36 | 
            -
                 | 
| 51 | 
            +
                end
         | 
| 52 | 
            +
                """
         | 
| 37 53 |  | 
| 38 | 
            -
                When I run  | 
| 54 | 
            +
                When I run "<Command> failing_implicit_docstrings_example.rb -fs"
         | 
| 39 55 |  | 
| 40 56 | 
             
                Then the stdout should match /should equal 2/
         | 
| 41 57 | 
             
                And the stdout should match /should be > 5/
         |