ageweke-rspec 1.2.9
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/.document +7 -0
- data/History.rdoc +1496 -0
- data/License.txt +22 -0
- data/Manifest.txt +377 -0
- data/README.rdoc +55 -0
- data/Rakefile +145 -0
- data/Ruby1.9.rdoc +31 -0
- data/TODO.txt +17 -0
- data/Upgrade.rdoc +199 -0
- data/bin/autospec +4 -0
- data/bin/spec +5 -0
- data/cucumber.yml +5 -0
- data/examples/failing/README.txt +11 -0
- data/examples/failing/diffing_spec.rb +36 -0
- data/examples/failing/failing_implicit_docstrings_example.rb +17 -0
- data/examples/failing/failure_in_after.rb +10 -0
- data/examples/failing/failure_in_before.rb +10 -0
- data/examples/failing/mocking_example.rb +38 -0
- data/examples/failing/mocking_with_flexmock.rb +26 -0
- data/examples/failing/mocking_with_mocha.rb +25 -0
- data/examples/failing/mocking_with_rr.rb +27 -0
- data/examples/failing/partial_mock_example.rb +18 -0
- data/examples/failing/pending_example.rb +7 -0
- data/examples/failing/predicate_example.rb +32 -0
- data/examples/failing/raising_example.rb +47 -0
- data/examples/failing/syntax_error_example.rb +7 -0
- data/examples/failing/team_spec.rb +41 -0
- data/examples/failing/timeout_behaviour.rb +5 -0
- data/examples/passing/custom_formatter.rb +11 -0
- data/examples/passing/custom_matchers.rb +54 -0
- data/examples/passing/dynamic_spec.rb +7 -0
- data/examples/passing/file_accessor.rb +18 -0
- data/examples/passing/file_accessor_spec.rb +37 -0
- data/examples/passing/filtered_formatter.rb +17 -0
- data/examples/passing/filtered_formatter_example.rb +31 -0
- data/examples/passing/greeter_spec.rb +30 -0
- data/examples/passing/helper_method_example.rb +12 -0
- data/examples/passing/implicit_docstrings_example.rb +16 -0
- data/examples/passing/io_processor.rb +8 -0
- data/examples/passing/io_processor_spec.rb +20 -0
- data/examples/passing/mocking_example.rb +25 -0
- data/examples/passing/multi_threaded_example_group_runner.rb +26 -0
- data/examples/passing/nested_classes_example.rb +35 -0
- data/examples/passing/options_example.rb +29 -0
- data/examples/passing/options_formatter.rb +20 -0
- data/examples/passing/partial_mock_example.rb +27 -0
- data/examples/passing/pending_example.rb +18 -0
- data/examples/passing/predicate_example.rb +25 -0
- data/examples/passing/shared_example_group_example.rb +79 -0
- data/examples/passing/shared_stack_examples.rb +36 -0
- data/examples/passing/simple_matcher_example.rb +29 -0
- data/examples/passing/stack.rb +36 -0
- data/examples/passing/stack_spec.rb +63 -0
- data/examples/passing/stack_spec_with_nested_example_groups.rb +66 -0
- data/examples/passing/stubbing_example.rb +67 -0
- data/examples/passing/yielding_example.rb +31 -0
- data/examples/ruby1.9.compatibility/access_to_constants_spec.rb +85 -0
- data/features/before_and_after_blocks/before_and_after_blocks.feature +167 -0
- data/features/command_line/line_number_option.feature +56 -0
- data/features/command_line/line_number_option_with_example_with_no_name.feature +22 -0
- data/features/example_groups/define_example_attribute.feature +41 -0
- data/features/example_groups/example_group_with_should_methods.feature +29 -0
- data/features/example_groups/implicit_docstrings.feature +59 -0
- data/features/example_groups/nested_groups.feature +32 -0
- data/features/expectations/customized_message.feature +54 -0
- data/features/expectations/expect_change.feature +65 -0
- data/features/expectations/expect_error.feature +44 -0
- data/features/extensions/custom_example_group.feature +19 -0
- data/features/formatters/custom_formatter.feature +30 -0
- data/features/interop/examples_and_tests_together.feature +84 -0
- data/features/interop/rspec_output.feature +25 -0
- data/features/interop/test_but_not_test_unit.feature +26 -0
- data/features/interop/test_case_with_should_methods.feature +46 -0
- data/features/load_paths/add_lib_to_load_path.feature +20 -0
- data/features/load_paths/add_spec_to_load_path.feature +20 -0
- data/features/matchers/define_diffable_matcher.feature +26 -0
- data/features/matchers/define_matcher.feature +179 -0
- data/features/matchers/define_matcher_outside_rspec.feature +38 -0
- data/features/matchers/define_matcher_with_fluent_interface.feature +27 -0
- data/features/matchers/define_wrapped_matcher.feature +29 -0
- data/features/mock_framework_integration/use_flexmock.feature +27 -0
- data/features/mock_framework_integration/use_mocha.feature +27 -0
- data/features/mock_framework_integration/use_rr.feature +27 -0
- data/features/mocks/mix_stubs_and_mocks.feature +22 -0
- data/features/mocks/stub_implementation.feature +26 -0
- data/features/pending/pending_examples.feature +81 -0
- data/features/runner/specify_line_number.feature +32 -0
- data/features/spec_helper/spec_helper.feature +25 -0
- data/features/step_definitions/running_rspec_steps.rb +43 -0
- data/features/subject/explicit_subject.feature +31 -0
- data/features/subject/implicit_subject.feature +43 -0
- data/features/support/env.rb +82 -0
- data/features/support/matchers/smart_match.rb +12 -0
- data/init.rb +9 -0
- data/lib/autotest/discover.rb +3 -0
- data/lib/autotest/rspec.rb +47 -0
- data/lib/spec.rb +8 -0
- data/lib/spec/adapters/mock_frameworks/flexmock.rb +24 -0
- data/lib/spec/adapters/mock_frameworks/mocha.rb +25 -0
- data/lib/spec/adapters/mock_frameworks/rr.rb +22 -0
- data/lib/spec/adapters/mock_frameworks/rspec.rb +21 -0
- data/lib/spec/autorun.rb +3 -0
- data/lib/spec/deprecation.rb +40 -0
- data/lib/spec/dsl.rb +1 -0
- data/lib/spec/dsl/main.rb +92 -0
- data/lib/spec/example.rb +164 -0
- data/lib/spec/example/args_and_options.rb +27 -0
- data/lib/spec/example/before_and_after_hooks.rb +93 -0
- data/lib/spec/example/errors.rb +25 -0
- data/lib/spec/example/example_group.rb +10 -0
- data/lib/spec/example/example_group_factory.rb +82 -0
- data/lib/spec/example/example_group_hierarchy.rb +53 -0
- data/lib/spec/example/example_group_methods.rb +282 -0
- data/lib/spec/example/example_group_proxy.rb +61 -0
- data/lib/spec/example/example_matcher.rb +43 -0
- data/lib/spec/example/example_methods.rb +148 -0
- data/lib/spec/example/example_proxy.rb +41 -0
- data/lib/spec/example/module_reopening_fix.rb +43 -0
- data/lib/spec/example/pending.rb +18 -0
- data/lib/spec/example/predicate_matchers.rb +46 -0
- data/lib/spec/example/shared_example_group.rb +59 -0
- data/lib/spec/example/subject.rb +108 -0
- data/lib/spec/expectations.rb +35 -0
- data/lib/spec/expectations/errors.rb +12 -0
- data/lib/spec/expectations/extensions.rb +1 -0
- data/lib/spec/expectations/extensions/kernel.rb +52 -0
- data/lib/spec/expectations/fail_with.rb +45 -0
- data/lib/spec/expectations/handler.rb +50 -0
- data/lib/spec/interop/test.rb +44 -0
- data/lib/spec/interop/test/unit/autorunner.rb +6 -0
- data/lib/spec/interop/test/unit/testcase.rb +56 -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 +61 -0
- data/lib/spec/matchers.rb +195 -0
- data/lib/spec/matchers/be.rb +210 -0
- data/lib/spec/matchers/be_close.rb +32 -0
- data/lib/spec/matchers/be_instance_of.rb +26 -0
- data/lib/spec/matchers/be_kind_of.rb +26 -0
- data/lib/spec/matchers/change.rb +151 -0
- data/lib/spec/matchers/compatibility.rb +14 -0
- data/lib/spec/matchers/dsl.rb +20 -0
- data/lib/spec/matchers/eql.rb +42 -0
- data/lib/spec/matchers/equal.rb +53 -0
- data/lib/spec/matchers/errors.rb +5 -0
- data/lib/spec/matchers/exist.rb +16 -0
- data/lib/spec/matchers/extensions/instance_exec.rb +31 -0
- data/lib/spec/matchers/generated_descriptions.rb +36 -0
- data/lib/spec/matchers/has.rb +35 -0
- data/lib/spec/matchers/have.rb +151 -0
- data/lib/spec/matchers/include.rb +44 -0
- data/lib/spec/matchers/match.rb +21 -0
- data/lib/spec/matchers/match_array.rb +71 -0
- data/lib/spec/matchers/matcher.rb +87 -0
- data/lib/spec/matchers/method_missing.rb +9 -0
- data/lib/spec/matchers/operator_matcher.rb +78 -0
- data/lib/spec/matchers/pretty.rb +37 -0
- data/lib/spec/matchers/raise_error.rb +129 -0
- data/lib/spec/matchers/respond_to.rb +71 -0
- data/lib/spec/matchers/satisfy.rb +47 -0
- data/lib/spec/matchers/simple_matcher.rb +133 -0
- data/lib/spec/matchers/throw_symbol.rb +104 -0
- data/lib/spec/matchers/wrap_expectation.rb +55 -0
- data/lib/spec/mocks.rb +200 -0
- data/lib/spec/mocks/argument_expectation.rb +51 -0
- data/lib/spec/mocks/argument_matchers.rb +237 -0
- data/lib/spec/mocks/error_generator.rb +92 -0
- data/lib/spec/mocks/errors.rb +10 -0
- data/lib/spec/mocks/example_methods.rb +69 -0
- data/lib/spec/mocks/extensions.rb +1 -0
- data/lib/spec/mocks/extensions/object.rb +3 -0
- data/lib/spec/mocks/framework.rb +15 -0
- data/lib/spec/mocks/message_expectation.rb +329 -0
- data/lib/spec/mocks/methods.rb +89 -0
- data/lib/spec/mocks/mock.rb +71 -0
- data/lib/spec/mocks/order_group.rb +29 -0
- data/lib/spec/mocks/proxy.rb +245 -0
- data/lib/spec/mocks/space.rb +28 -0
- data/lib/spec/rake/spectask.rb +230 -0
- data/lib/spec/rake/verify_rcov.rb +52 -0
- data/lib/spec/ruby.rb +9 -0
- data/lib/spec/runner.rb +66 -0
- data/lib/spec/runner/backtrace_tweaker.rb +77 -0
- data/lib/spec/runner/class_and_arguments_parser.rb +14 -0
- data/lib/spec/runner/command_line.rb +15 -0
- data/lib/spec/runner/configuration.rb +194 -0
- data/lib/spec/runner/differs/default.rb +93 -0
- data/lib/spec/runner/differs/load-diff-lcs.rb +12 -0
- data/lib/spec/runner/drb_command_line.rb +33 -0
- data/lib/spec/runner/example_group_runner.rb +59 -0
- data/lib/spec/runner/extensions/kernel.rb +9 -0
- data/lib/spec/runner/formatter/base_formatter.rb +139 -0
- data/lib/spec/runner/formatter/base_text_formatter.rb +142 -0
- data/lib/spec/runner/formatter/failing_example_groups_formatter.rb +25 -0
- data/lib/spec/runner/formatter/failing_examples_formatter.rb +20 -0
- data/lib/spec/runner/formatter/html_formatter.rb +338 -0
- data/lib/spec/runner/formatter/nested_text_formatter.rb +47 -0
- data/lib/spec/runner/formatter/no_op_method_missing.rb +21 -0
- data/lib/spec/runner/formatter/profile_formatter.rb +47 -0
- data/lib/spec/runner/formatter/progress_bar_formatter.rb +33 -0
- data/lib/spec/runner/formatter/silent_formatter.rb +10 -0
- data/lib/spec/runner/formatter/snippet_extractor.rb +52 -0
- data/lib/spec/runner/formatter/specdoc_formatter.rb +33 -0
- data/lib/spec/runner/formatter/text_mate_formatter.rb +16 -0
- data/lib/spec/runner/heckle_runner.rb +72 -0
- data/lib/spec/runner/heckle_runner_unsupported.rb +10 -0
- data/lib/spec/runner/line_number_query.rb +78 -0
- data/lib/spec/runner/option_parser.rb +225 -0
- data/lib/spec/runner/options.rb +406 -0
- data/lib/spec/runner/reporter.rb +171 -0
- data/lib/spec/stubs/cucumber.rb +5 -0
- data/lib/spec/test/unit.rb +10 -0
- data/lib/spec/version.rb +14 -0
- data/resources/helpers/cmdline.rb +8 -0
- data/resources/rake/examples.rake +7 -0
- data/resources/rake/examples_with_rcov.rake +9 -0
- data/resources/rake/failing_examples_with_html.rake +9 -0
- data/resources/rake/verify_rcov.rake +7 -0
- data/spec/README.jruby +15 -0
- data/spec/autotest/autotest_helper.rb +8 -0
- data/spec/autotest/autotest_matchers.rb +38 -0
- data/spec/autotest/discover_spec.rb +8 -0
- data/spec/autotest/failed_results_re_spec.rb +31 -0
- data/spec/autotest/rspec_spec.rb +111 -0
- data/spec/ruby_forker.rb +13 -0
- data/spec/spec.opts +6 -0
- data/spec/spec/dsl/main_spec.rb +95 -0
- data/spec/spec/example/example_group_class_definition_spec.rb +51 -0
- data/spec/spec/example/example_group_factory_spec.rb +180 -0
- data/spec/spec/example/example_group_methods_spec.rb +758 -0
- data/spec/spec/example/example_group_proxy_spec.rb +107 -0
- data/spec/spec/example/example_group_spec.rb +643 -0
- data/spec/spec/example/example_matcher_spec.rb +86 -0
- data/spec/spec/example/example_methods_spec.rb +162 -0
- data/spec/spec/example/example_proxy_spec.rb +57 -0
- data/spec/spec/example/helper_method_spec.rb +24 -0
- data/spec/spec/example/nested_example_group_spec.rb +71 -0
- data/spec/spec/example/pending_module_spec.rb +58 -0
- data/spec/spec/example/predicate_matcher_spec.rb +41 -0
- data/spec/spec/example/shared_example_group_spec.rb +257 -0
- data/spec/spec/example/subclassing_example_group_spec.rb +25 -0
- data/spec/spec/example/subject_spec.rb +103 -0
- data/spec/spec/expectations/differs/default_spec.rb +194 -0
- data/spec/spec/expectations/extensions/kernel_spec.rb +45 -0
- data/spec/spec/expectations/fail_with_spec.rb +96 -0
- data/spec/spec/expectations/handler_spec.rb +206 -0
- data/spec/spec/expectations/wrap_expectation_spec.rb +30 -0
- data/spec/spec/interop/test/unit/resources/spec_that_fails.rb +10 -0
- data/spec/spec/interop/test/unit/resources/spec_that_passes.rb +10 -0
- data/spec/spec/interop/test/unit/resources/spec_with_errors.rb +10 -0
- data/spec/spec/interop/test/unit/resources/spec_with_options_hash.rb +13 -0
- data/spec/spec/interop/test/unit/resources/test_case_that_fails.rb +10 -0
- data/spec/spec/interop/test/unit/resources/test_case_that_passes.rb +10 -0
- data/spec/spec/interop/test/unit/resources/test_case_with_errors.rb +10 -0
- data/spec/spec/interop/test/unit/resources/test_case_with_various_names.rb +22 -0
- data/spec/spec/interop/test/unit/resources/testsuite_adapter_spec_with_test_unit.rb +38 -0
- data/spec/spec/interop/test/unit/spec_spec.rb +48 -0
- data/spec/spec/interop/test/unit/test_unit_spec_helper.rb +18 -0
- data/spec/spec/interop/test/unit/testcase_spec.rb +50 -0
- data/spec/spec/interop/test/unit/testsuite_adapter_spec.rb +9 -0
- data/spec/spec/matchers/be_close_spec.rb +50 -0
- data/spec/spec/matchers/be_instance_of_spec.rb +36 -0
- data/spec/spec/matchers/be_kind_of_spec.rb +33 -0
- data/spec/spec/matchers/be_spec.rb +311 -0
- data/spec/spec/matchers/change_spec.rb +349 -0
- data/spec/spec/matchers/compatibility_spec.rb +28 -0
- data/spec/spec/matchers/description_generation_spec.rb +160 -0
- data/spec/spec/matchers/dsl_spec.rb +34 -0
- data/spec/spec/matchers/eql_spec.rb +33 -0
- data/spec/spec/matchers/equal_spec.rb +57 -0
- data/spec/spec/matchers/exist_spec.rb +65 -0
- data/spec/spec/matchers/has_spec.rb +81 -0
- data/spec/spec/matchers/have_spec.rb +396 -0
- data/spec/spec/matchers/include_spec.rb +88 -0
- data/spec/spec/matchers/match_array_spec.rb +108 -0
- data/spec/spec/matchers/match_spec.rb +57 -0
- data/spec/spec/matchers/matcher_methods_spec.rb +63 -0
- data/spec/spec/matchers/matcher_spec.rb +228 -0
- data/spec/spec/matchers/matchers_spec.rb +2 -0
- data/spec/spec/matchers/operator_matcher_spec.rb +191 -0
- data/spec/spec/matchers/raise_error_spec.rb +333 -0
- data/spec/spec/matchers/respond_to_spec.rb +116 -0
- data/spec/spec/matchers/satisfy_spec.rb +36 -0
- data/spec/spec/matchers/simple_matcher_spec.rb +93 -0
- data/spec/spec/matchers/throw_symbol_spec.rb +96 -0
- data/spec/spec/mocks/any_number_of_times_spec.rb +36 -0
- data/spec/spec/mocks/argument_expectation_spec.rb +23 -0
- data/spec/spec/mocks/argument_matchers_spec.rb +19 -0
- data/spec/spec/mocks/at_least_spec.rb +97 -0
- data/spec/spec/mocks/at_most_spec.rb +93 -0
- data/spec/spec/mocks/bug_report_10260_spec.rb +8 -0
- data/spec/spec/mocks/bug_report_10263_spec.rb +27 -0
- data/spec/spec/mocks/bug_report_11545_spec.rb +32 -0
- data/spec/spec/mocks/bug_report_15719_spec.rb +30 -0
- data/spec/spec/mocks/bug_report_496_spec.rb +19 -0
- data/spec/spec/mocks/bug_report_600_spec.rb +22 -0
- data/spec/spec/mocks/bug_report_7611_spec.rb +19 -0
- data/spec/spec/mocks/bug_report_7805_spec.rb +22 -0
- data/spec/spec/mocks/bug_report_8165_spec.rb +31 -0
- data/spec/spec/mocks/bug_report_8302_spec.rb +26 -0
- data/spec/spec/mocks/bug_report_830_spec.rb +21 -0
- data/spec/spec/mocks/double_spec.rb +12 -0
- data/spec/spec/mocks/failing_argument_matchers_spec.rb +95 -0
- data/spec/spec/mocks/hash_including_matcher_spec.rb +90 -0
- data/spec/spec/mocks/hash_not_including_matcher_spec.rb +67 -0
- data/spec/spec/mocks/mock_ordering_spec.rb +94 -0
- data/spec/spec/mocks/mock_space_spec.rb +54 -0
- data/spec/spec/mocks/mock_spec.rb +594 -0
- data/spec/spec/mocks/multiple_return_value_spec.rb +113 -0
- data/spec/spec/mocks/nil_expectation_warning_spec.rb +53 -0
- data/spec/spec/mocks/null_object_mock_spec.rb +54 -0
- data/spec/spec/mocks/once_counts_spec.rb +53 -0
- data/spec/spec/mocks/options_hash_spec.rb +35 -0
- data/spec/spec/mocks/partial_mock_spec.rb +164 -0
- data/spec/spec/mocks/partial_mock_using_mocks_directly_spec.rb +66 -0
- data/spec/spec/mocks/passing_argument_matchers_spec.rb +145 -0
- data/spec/spec/mocks/precise_counts_spec.rb +52 -0
- data/spec/spec/mocks/record_messages_spec.rb +26 -0
- data/spec/spec/mocks/stub_chain_spec.rb +42 -0
- data/spec/spec/mocks/stub_implementation_spec.rb +31 -0
- data/spec/spec/mocks/stub_spec.rb +203 -0
- data/spec/spec/mocks/stubbed_message_expectations_spec.rb +26 -0
- data/spec/spec/mocks/twice_counts_spec.rb +67 -0
- data/spec/spec/mocks/unstub_spec.rb +127 -0
- data/spec/spec/package/bin_spec_spec.rb +16 -0
- data/spec/spec/rake/spectask_spec.rb +150 -0
- data/spec/spec/runner/class_and_argument_parser_spec.rb +23 -0
- data/spec/spec/runner/command_line_spec.rb +141 -0
- data/spec/spec/runner/configuration_spec.rb +320 -0
- data/spec/spec/runner/drb_command_line_spec.rb +148 -0
- data/spec/spec/runner/empty_file.txt +0 -0
- data/spec/spec/runner/example_group_runner_spec.rb +26 -0
- data/spec/spec/runner/examples.txt +2 -0
- data/spec/spec/runner/failed.txt +3 -0
- data/spec/spec/runner/formatter/base_formatter_spec.rb +30 -0
- data/spec/spec/runner/formatter/base_text_formatter_spec.rb +113 -0
- data/spec/spec/runner/formatter/failing_example_groups_formatter_spec.rb +45 -0
- data/spec/spec/runner/formatter/failing_examples_formatter_spec.rb +33 -0
- data/spec/spec/runner/formatter/html_formatted-1.8.6-jruby.html +377 -0
- data/spec/spec/runner/formatter/html_formatted-1.8.6.html +377 -0
- data/spec/spec/runner/formatter/html_formatted-1.8.7.html +377 -0
- data/spec/spec/runner/formatter/html_formatted-1.9.1.html +377 -0
- data/spec/spec/runner/formatter/html_formatter_spec.rb +118 -0
- data/spec/spec/runner/formatter/nested_text_formatter_spec.rb +305 -0
- data/spec/spec/runner/formatter/profile_formatter_spec.rb +70 -0
- data/spec/spec/runner/formatter/progress_bar_formatter_spec.rb +149 -0
- data/spec/spec/runner/formatter/snippet_extractor_spec.rb +18 -0
- data/spec/spec/runner/formatter/specdoc_formatter_spec.rb +159 -0
- data/spec/spec/runner/formatter/text_mate_formatted-1.8.6-jruby.html +371 -0
- data/spec/spec/runner/formatter/text_mate_formatted-1.8.6.html +371 -0
- data/spec/spec/runner/formatter/text_mate_formatted-1.8.7.html +371 -0
- data/spec/spec/runner/formatter/text_mate_formatted-1.9.1.html +371 -0
- data/spec/spec/runner/formatter/text_mate_formatter_spec.rb +106 -0
- data/spec/spec/runner/heckle_runner_spec.rb +78 -0
- data/spec/spec/runner/heckler_spec.rb +20 -0
- data/spec/spec/runner/line_number_query/line_number_query_fixture.rb +70 -0
- data/spec/spec/runner/line_number_query_spec.rb +129 -0
- data/spec/spec/runner/noisy_backtrace_tweaker_spec.rb +51 -0
- data/spec/spec/runner/option_parser_spec.rb +554 -0
- data/spec/spec/runner/options_spec.rb +554 -0
- data/spec/spec/runner/output_one_time_fixture.rb +7 -0
- data/spec/spec/runner/output_one_time_fixture_runner.rb +7 -0
- data/spec/spec/runner/output_one_time_spec.rb +15 -0
- data/spec/spec/runner/quiet_backtrace_tweaker_spec.rb +105 -0
- data/spec/spec/runner/reporter_spec.rb +244 -0
- data/spec/spec/runner/resources/a_bar.rb +0 -0
- data/spec/spec/runner/resources/a_foo.rb +0 -0
- data/spec/spec/runner/resources/a_spec.rb +1 -0
- data/spec/spec/runner/resources/custom_example_group_runner.rb +14 -0
- data/spec/spec/runner/resources/utf8_encoded.rb +8 -0
- data/spec/spec/runner/spec.opts +2 -0
- data/spec/spec/runner/spec_drb.opts +2 -0
- data/spec/spec/runner/spec_spaced.opts +2 -0
- data/spec/spec/runner_spec.rb +13 -0
- data/spec/spec_helper.rb +112 -0
- data/spec/support/macros.rb +29 -0
- data/spec/support/spec_classes.rb +133 -0
- metadata +505 -0
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
describe "arrays" do
|
|
2
|
+
def contain_same_elements_as(expected)
|
|
3
|
+
simple_matcher "array with same elements in any order as #{expected.inspect}" do |actual|
|
|
4
|
+
if actual.size == expected.size
|
|
5
|
+
a, e = actual.dup, expected.dup
|
|
6
|
+
until e.empty? do
|
|
7
|
+
if i = a.index(e.pop) then a.delete_at(i) end
|
|
8
|
+
end
|
|
9
|
+
a.empty?
|
|
10
|
+
else
|
|
11
|
+
false
|
|
12
|
+
end
|
|
13
|
+
end
|
|
14
|
+
end
|
|
15
|
+
|
|
16
|
+
describe "can be matched by their contents disregarding order" do
|
|
17
|
+
subject { [1,2,2,3] }
|
|
18
|
+
it { should contain_same_elements_as([1,2,2,3]) }
|
|
19
|
+
it { should contain_same_elements_as([2,3,2,1]) }
|
|
20
|
+
it { should_not contain_same_elements_as([3,3,2,1]) }
|
|
21
|
+
end
|
|
22
|
+
|
|
23
|
+
describe "fail the match with different contents" do
|
|
24
|
+
subject { [1,2,3] }
|
|
25
|
+
it { should_not contain_same_elements_as([2,3,4])}
|
|
26
|
+
it { should_not contain_same_elements_as([1,2,2,3])}
|
|
27
|
+
it { should_not contain_same_elements_as([1,2])}
|
|
28
|
+
end
|
|
29
|
+
end
|
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
class StackUnderflowError < RuntimeError
|
|
2
|
+
end
|
|
3
|
+
|
|
4
|
+
class StackOverflowError < RuntimeError
|
|
5
|
+
end
|
|
6
|
+
|
|
7
|
+
class Stack
|
|
8
|
+
|
|
9
|
+
def initialize
|
|
10
|
+
@items = []
|
|
11
|
+
end
|
|
12
|
+
|
|
13
|
+
def push object
|
|
14
|
+
raise StackOverflowError if @items.length == 10
|
|
15
|
+
@items.push object
|
|
16
|
+
end
|
|
17
|
+
|
|
18
|
+
def pop
|
|
19
|
+
raise StackUnderflowError if @items.empty?
|
|
20
|
+
@items.delete @items.last
|
|
21
|
+
end
|
|
22
|
+
|
|
23
|
+
def peek
|
|
24
|
+
raise StackUnderflowError if @items.empty?
|
|
25
|
+
@items.last
|
|
26
|
+
end
|
|
27
|
+
|
|
28
|
+
def empty?
|
|
29
|
+
@items.empty?
|
|
30
|
+
end
|
|
31
|
+
|
|
32
|
+
def full?
|
|
33
|
+
@items.length == 10
|
|
34
|
+
end
|
|
35
|
+
|
|
36
|
+
end
|
|
@@ -0,0 +1,63 @@
|
|
|
1
|
+
require 'examples/passing/stack'
|
|
2
|
+
require 'examples/passing/shared_stack_examples'
|
|
3
|
+
|
|
4
|
+
describe Stack, " (empty)" do
|
|
5
|
+
before(:each) do
|
|
6
|
+
@stack = Stack.new
|
|
7
|
+
end
|
|
8
|
+
|
|
9
|
+
# This uses @stack (because the described class is Stack) auto-generates the
|
|
10
|
+
# description "should be empty"
|
|
11
|
+
it { should be_empty }
|
|
12
|
+
|
|
13
|
+
it_should_behave_like "non-full Stack"
|
|
14
|
+
|
|
15
|
+
it "should complain when sent #peek" do
|
|
16
|
+
lambda { @stack.peek }.should raise_error(StackUnderflowError)
|
|
17
|
+
end
|
|
18
|
+
|
|
19
|
+
it "should complain when sent #pop" do
|
|
20
|
+
lambda { @stack.pop }.should raise_error(StackUnderflowError)
|
|
21
|
+
end
|
|
22
|
+
end
|
|
23
|
+
|
|
24
|
+
describe Stack, " (with one item)" do
|
|
25
|
+
before(:each) do
|
|
26
|
+
@stack = Stack.new
|
|
27
|
+
@stack.push 3
|
|
28
|
+
@last_item_added = 3
|
|
29
|
+
end
|
|
30
|
+
|
|
31
|
+
it_should_behave_like "non-empty Stack"
|
|
32
|
+
it_should_behave_like "non-full Stack"
|
|
33
|
+
|
|
34
|
+
end
|
|
35
|
+
|
|
36
|
+
describe Stack, " (with one item less than capacity)" do
|
|
37
|
+
before(:each) do
|
|
38
|
+
@stack = Stack.new
|
|
39
|
+
(1..9).each { |i| @stack.push i }
|
|
40
|
+
@last_item_added = 9
|
|
41
|
+
end
|
|
42
|
+
|
|
43
|
+
it_should_behave_like "non-empty Stack"
|
|
44
|
+
it_should_behave_like "non-full Stack"
|
|
45
|
+
end
|
|
46
|
+
|
|
47
|
+
describe Stack, " (full)" do
|
|
48
|
+
before(:each) do
|
|
49
|
+
@stack = Stack.new
|
|
50
|
+
(1..10).each { |i| @stack.push i }
|
|
51
|
+
@last_item_added = 10
|
|
52
|
+
end
|
|
53
|
+
|
|
54
|
+
# NOTE that this one auto-generates the description "should be full"
|
|
55
|
+
it { @stack.should be_full }
|
|
56
|
+
|
|
57
|
+
it_should_behave_like "non-empty Stack"
|
|
58
|
+
|
|
59
|
+
it "should complain on #push" do
|
|
60
|
+
lambda { @stack.push Object.new }.should raise_error(StackOverflowError)
|
|
61
|
+
end
|
|
62
|
+
|
|
63
|
+
end
|
|
@@ -0,0 +1,66 @@
|
|
|
1
|
+
require 'examples/passing/stack'
|
|
2
|
+
require 'examples/passing/shared_stack_examples'
|
|
3
|
+
|
|
4
|
+
describe Stack do
|
|
5
|
+
|
|
6
|
+
before(:each) do
|
|
7
|
+
@stack = Stack.new
|
|
8
|
+
end
|
|
9
|
+
|
|
10
|
+
describe "(empty)" do
|
|
11
|
+
|
|
12
|
+
it { @stack.should be_empty }
|
|
13
|
+
|
|
14
|
+
it_should_behave_like "non-full Stack"
|
|
15
|
+
|
|
16
|
+
it "should complain when sent #peek" do
|
|
17
|
+
lambda { @stack.peek }.should raise_error(StackUnderflowError)
|
|
18
|
+
end
|
|
19
|
+
|
|
20
|
+
it "should complain when sent #pop" do
|
|
21
|
+
lambda { @stack.pop }.should raise_error(StackUnderflowError)
|
|
22
|
+
end
|
|
23
|
+
|
|
24
|
+
end
|
|
25
|
+
|
|
26
|
+
describe "(with one item)" do
|
|
27
|
+
|
|
28
|
+
before(:each) do
|
|
29
|
+
@stack.push 3
|
|
30
|
+
@last_item_added = 3
|
|
31
|
+
end
|
|
32
|
+
|
|
33
|
+
it_should_behave_like "non-empty Stack"
|
|
34
|
+
it_should_behave_like "non-full Stack"
|
|
35
|
+
|
|
36
|
+
end
|
|
37
|
+
|
|
38
|
+
describe "(with one item less than capacity)" do
|
|
39
|
+
|
|
40
|
+
before(:each) do
|
|
41
|
+
(1..9).each { |i| @stack.push i }
|
|
42
|
+
@last_item_added = 9
|
|
43
|
+
end
|
|
44
|
+
|
|
45
|
+
it_should_behave_like "non-empty Stack"
|
|
46
|
+
it_should_behave_like "non-full Stack"
|
|
47
|
+
end
|
|
48
|
+
|
|
49
|
+
describe "(full)" do
|
|
50
|
+
|
|
51
|
+
before(:each) do
|
|
52
|
+
(1..10).each { |i| @stack.push i }
|
|
53
|
+
@last_item_added = 10
|
|
54
|
+
end
|
|
55
|
+
|
|
56
|
+
it { @stack.should be_full }
|
|
57
|
+
|
|
58
|
+
it_should_behave_like "non-empty Stack"
|
|
59
|
+
|
|
60
|
+
it "should complain on #push" do
|
|
61
|
+
lambda { @stack.push Object.new }.should raise_error(StackOverflowError)
|
|
62
|
+
end
|
|
63
|
+
|
|
64
|
+
end
|
|
65
|
+
|
|
66
|
+
end
|
|
@@ -0,0 +1,67 @@
|
|
|
1
|
+
describe "A consumer of a stub" do
|
|
2
|
+
it "should be able to stub methods on any Object" do
|
|
3
|
+
obj = Object.new
|
|
4
|
+
obj.stub!(:foobar).and_return {:return_value}
|
|
5
|
+
obj.foobar.should equal(:return_value)
|
|
6
|
+
end
|
|
7
|
+
end
|
|
8
|
+
|
|
9
|
+
class StubbableClass
|
|
10
|
+
def self.find id
|
|
11
|
+
return :original_return
|
|
12
|
+
end
|
|
13
|
+
end
|
|
14
|
+
|
|
15
|
+
describe "A stubbed method on a class" do
|
|
16
|
+
it "should return the stubbed value" do
|
|
17
|
+
StubbableClass.stub!(:find).and_return(:stub_return)
|
|
18
|
+
StubbableClass.find(1).should equal(:stub_return)
|
|
19
|
+
end
|
|
20
|
+
|
|
21
|
+
it "should revert to the original method after each spec" do
|
|
22
|
+
StubbableClass.find(1).should equal(:original_return)
|
|
23
|
+
end
|
|
24
|
+
|
|
25
|
+
it "can stub! and mock the same message" do
|
|
26
|
+
StubbableClass.stub!(:msg).and_return(:stub_value)
|
|
27
|
+
StubbableClass.should_receive(:msg).with(:arg).and_return(:mock_value)
|
|
28
|
+
|
|
29
|
+
StubbableClass.msg.should equal(:stub_value)
|
|
30
|
+
StubbableClass.msg(:other_arg).should equal(:stub_value)
|
|
31
|
+
StubbableClass.msg(:arg).should equal(:mock_value)
|
|
32
|
+
StubbableClass.msg(:another_arg).should equal(:stub_value)
|
|
33
|
+
StubbableClass.msg(:yet_another_arg).should equal(:stub_value)
|
|
34
|
+
StubbableClass.msg.should equal(:stub_value)
|
|
35
|
+
end
|
|
36
|
+
end
|
|
37
|
+
|
|
38
|
+
describe "A mock" do
|
|
39
|
+
it "can stub!" do
|
|
40
|
+
mock = mock("stubbing mock")
|
|
41
|
+
mock.stub!(:msg).and_return(:value)
|
|
42
|
+
(1..10).each {mock.msg.should equal(:value)}
|
|
43
|
+
end
|
|
44
|
+
|
|
45
|
+
it "can stub! and mock" do
|
|
46
|
+
mock = mock("stubbing mock")
|
|
47
|
+
mock.stub!(:stub_message).and_return(:stub_value)
|
|
48
|
+
mock.should_receive(:mock_message).once.and_return(:mock_value)
|
|
49
|
+
(1..10).each {mock.stub_message.should equal(:stub_value)}
|
|
50
|
+
mock.mock_message.should equal(:mock_value)
|
|
51
|
+
(1..10).each {mock.stub_message.should equal(:stub_value)}
|
|
52
|
+
end
|
|
53
|
+
|
|
54
|
+
it "can stub! and mock the same message" do
|
|
55
|
+
mock = mock("stubbing mock")
|
|
56
|
+
mock.stub!(:msg).and_return(:stub_value)
|
|
57
|
+
mock.should_receive(:msg).with(:arg).and_return(:mock_value)
|
|
58
|
+
mock.msg.should equal(:stub_value)
|
|
59
|
+
mock.msg(:other_arg).should equal(:stub_value)
|
|
60
|
+
mock.msg(:arg).should equal(:mock_value)
|
|
61
|
+
mock.msg(:another_arg).should equal(:stub_value)
|
|
62
|
+
mock.msg(:yet_another_arg).should equal(:stub_value)
|
|
63
|
+
mock.msg.should equal(:stub_value)
|
|
64
|
+
end
|
|
65
|
+
end
|
|
66
|
+
|
|
67
|
+
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
class MessageAppender
|
|
2
|
+
|
|
3
|
+
def initialize(appendage)
|
|
4
|
+
@appendage = appendage
|
|
5
|
+
end
|
|
6
|
+
|
|
7
|
+
def append_to(message)
|
|
8
|
+
if_told_to_yield do
|
|
9
|
+
message << @appendage
|
|
10
|
+
end
|
|
11
|
+
end
|
|
12
|
+
|
|
13
|
+
end
|
|
14
|
+
|
|
15
|
+
describe "a message expectation yielding to a block" do
|
|
16
|
+
it "should yield if told to" do
|
|
17
|
+
appender = MessageAppender.new("appended to")
|
|
18
|
+
appender.should_receive(:if_told_to_yield).and_yield
|
|
19
|
+
message = ""
|
|
20
|
+
appender.append_to(message)
|
|
21
|
+
message.should == "appended to"
|
|
22
|
+
end
|
|
23
|
+
|
|
24
|
+
it "should not yield if not told to" do
|
|
25
|
+
appender = MessageAppender.new("appended to")
|
|
26
|
+
appender.should_receive(:if_told_to_yield)
|
|
27
|
+
message = ""
|
|
28
|
+
appender.append_to(message)
|
|
29
|
+
message.should == ""
|
|
30
|
+
end
|
|
31
|
+
end
|
|
@@ -0,0 +1,85 @@
|
|
|
1
|
+
# courtesy of Matthias Hennemeyer
|
|
2
|
+
#
|
|
3
|
+
# The following should pass against ruby 1.8 and 1.9. It currently only passes
|
|
4
|
+
# 1.8 (as of 1/2/2009)
|
|
5
|
+
#
|
|
6
|
+
# Once cucumber supports ruby 1.9, this should be moved to cucumber scenarios instead.
|
|
7
|
+
module Foo
|
|
8
|
+
module Bar
|
|
9
|
+
|
|
10
|
+
module ModuleInEnclosingModule;end
|
|
11
|
+
class ClassInEnclosingModule;end
|
|
12
|
+
def method_in_enclosing_module;end
|
|
13
|
+
CONSTANT_IN_ENCLOSING_MODULE = 0
|
|
14
|
+
|
|
15
|
+
describe "Examples trying to access constants defined in an enclosing module" do
|
|
16
|
+
|
|
17
|
+
it "can access Modules" do
|
|
18
|
+
ModuleInEnclosingModule
|
|
19
|
+
end
|
|
20
|
+
it "can access Classes" do
|
|
21
|
+
ClassInEnclosingModule.new
|
|
22
|
+
end
|
|
23
|
+
it "can access CONSTANTS" do
|
|
24
|
+
CONSTANT_IN_ENCLOSING_MODULE
|
|
25
|
+
end
|
|
26
|
+
it "can NOT access methods" do
|
|
27
|
+
lambda {method_in_enclosing_module}.should raise_error(/undefined/)
|
|
28
|
+
end
|
|
29
|
+
|
|
30
|
+
describe "from a nested example group" do
|
|
31
|
+
|
|
32
|
+
it "can access Modules" do
|
|
33
|
+
ModuleInEnclosingModule
|
|
34
|
+
end
|
|
35
|
+
it "can access Classes" do
|
|
36
|
+
ClassInEnclosingModule.new
|
|
37
|
+
end
|
|
38
|
+
it "can access CONSTANTS" do
|
|
39
|
+
CONSTANT_IN_ENCLOSING_MODULE
|
|
40
|
+
end
|
|
41
|
+
it "can NOT access methods" do
|
|
42
|
+
lambda {method_in_enclosing_module}.should raise_error(/undefined/)
|
|
43
|
+
end
|
|
44
|
+
|
|
45
|
+
end
|
|
46
|
+
|
|
47
|
+
end
|
|
48
|
+
|
|
49
|
+
describe "Examples trying to access constants defined in the example group" do
|
|
50
|
+
|
|
51
|
+
module ModuleDefinedInGroup;end
|
|
52
|
+
class ClassDefinedInGroup; end
|
|
53
|
+
def method_defined_in_group; end
|
|
54
|
+
CONSTANT_DEFINED_IN_GROUP = 0
|
|
55
|
+
|
|
56
|
+
it "can access Modules" do
|
|
57
|
+
ModuleDefinedInGroup
|
|
58
|
+
end
|
|
59
|
+
it "can access Classes" do
|
|
60
|
+
ClassDefinedInGroup.new
|
|
61
|
+
end
|
|
62
|
+
it "can access CONSTANTS" do
|
|
63
|
+
CONSTANT_DEFINED_IN_GROUP
|
|
64
|
+
end
|
|
65
|
+
it "can access methods" do
|
|
66
|
+
method_defined_in_group
|
|
67
|
+
end
|
|
68
|
+
|
|
69
|
+
describe "that live inside a nested group" do
|
|
70
|
+
it "can access Modules" do
|
|
71
|
+
ModuleDefinedInGroup
|
|
72
|
+
end
|
|
73
|
+
it "can access Classes" do
|
|
74
|
+
ClassDefinedInGroup.new
|
|
75
|
+
end
|
|
76
|
+
it "can access CONSTANTS" do
|
|
77
|
+
CONSTANT_DEFINED_IN_GROUP
|
|
78
|
+
end
|
|
79
|
+
it "can access methods" do
|
|
80
|
+
method_defined_in_group
|
|
81
|
+
end
|
|
82
|
+
end
|
|
83
|
+
end
|
|
84
|
+
end
|
|
85
|
+
end
|
|
@@ -0,0 +1,167 @@
|
|
|
1
|
+
Feature: before and after blocks
|
|
2
|
+
|
|
3
|
+
As a developer using RSpec
|
|
4
|
+
I want to execute arbitrary code before and after each example
|
|
5
|
+
So that I can control the environment in which it is run
|
|
6
|
+
|
|
7
|
+
This is supported by the before and after methods which each take a symbol
|
|
8
|
+
indicating the scope, and a block of code to execute.
|
|
9
|
+
|
|
10
|
+
before(:each) blocks are run before each example
|
|
11
|
+
before(:all) blocks are run once before all of the examples in a group
|
|
12
|
+
before(:suite) blocks are run once before the entire suite
|
|
13
|
+
|
|
14
|
+
after(:each) blocks are run after each example
|
|
15
|
+
after(:all) blocks are run once after all of the examples in a group
|
|
16
|
+
after(:suite) blocks are run once after the entire suite
|
|
17
|
+
|
|
18
|
+
Before and after blocks are called in the following order:
|
|
19
|
+
before suite
|
|
20
|
+
before all
|
|
21
|
+
before each
|
|
22
|
+
after each
|
|
23
|
+
after all
|
|
24
|
+
after suite
|
|
25
|
+
|
|
26
|
+
Before and after blocks can be defined in the example groups to which they
|
|
27
|
+
apply or in a configuration. When defined in a configuration, they can be
|
|
28
|
+
applied to all groups or subsets of all groups defined by example group
|
|
29
|
+
types.
|
|
30
|
+
|
|
31
|
+
Scenario: define before(:each) block in example group
|
|
32
|
+
Given a file named "before_each_in_example_group_spec.rb" with:
|
|
33
|
+
"""
|
|
34
|
+
class Thing
|
|
35
|
+
def widgets
|
|
36
|
+
@widgets ||= []
|
|
37
|
+
end
|
|
38
|
+
end
|
|
39
|
+
|
|
40
|
+
describe Thing do
|
|
41
|
+
before(:each) do
|
|
42
|
+
@thing = Thing.new
|
|
43
|
+
end
|
|
44
|
+
|
|
45
|
+
context "initialized in before(:each)" do
|
|
46
|
+
it "has 0 widgets" do
|
|
47
|
+
@thing.should have(0).widgets
|
|
48
|
+
end
|
|
49
|
+
|
|
50
|
+
it "can get accept new widgets" do
|
|
51
|
+
@thing.widgets << Object.new
|
|
52
|
+
end
|
|
53
|
+
|
|
54
|
+
it "does not share state across examples" do
|
|
55
|
+
@thing.should have(0).widgets
|
|
56
|
+
end
|
|
57
|
+
end
|
|
58
|
+
end
|
|
59
|
+
"""
|
|
60
|
+
When I run "spec before_each_in_example_group_spec.rb"
|
|
61
|
+
Then the stdout should include "3 examples, 0 failures"
|
|
62
|
+
|
|
63
|
+
Scenario: define before(:all) block in example group
|
|
64
|
+
Given a file named "before_all_in_example_group_spec.rb" with:
|
|
65
|
+
"""
|
|
66
|
+
class Thing
|
|
67
|
+
def widgets
|
|
68
|
+
@widgets ||= []
|
|
69
|
+
end
|
|
70
|
+
end
|
|
71
|
+
|
|
72
|
+
describe Thing do
|
|
73
|
+
before(:all) do
|
|
74
|
+
@thing = Thing.new
|
|
75
|
+
end
|
|
76
|
+
|
|
77
|
+
context "initialized in before(:all)" do
|
|
78
|
+
it "has 0 widgets" do
|
|
79
|
+
@thing.should have(0).widgets
|
|
80
|
+
end
|
|
81
|
+
|
|
82
|
+
it "can get accept new widgets" do
|
|
83
|
+
@thing.widgets << Object.new
|
|
84
|
+
end
|
|
85
|
+
|
|
86
|
+
it "shares state across examples" do
|
|
87
|
+
@thing.should have(1).widgets
|
|
88
|
+
end
|
|
89
|
+
end
|
|
90
|
+
end
|
|
91
|
+
"""
|
|
92
|
+
When I run "spec before_all_in_example_group_spec.rb"
|
|
93
|
+
Then the stdout should include "3 examples, 0 failures"
|
|
94
|
+
|
|
95
|
+
Scenario: define before and after blocks in configuration
|
|
96
|
+
Given a file named "befores_in_configuration_spec.rb" with:
|
|
97
|
+
"""
|
|
98
|
+
Spec::Runner.configure do |config|
|
|
99
|
+
config.before(:suite) do
|
|
100
|
+
$before_suite = "before suite"
|
|
101
|
+
end
|
|
102
|
+
config.before(:each) do
|
|
103
|
+
@before_each = "before each"
|
|
104
|
+
end
|
|
105
|
+
config.before(:all) do
|
|
106
|
+
@before_all = "before all"
|
|
107
|
+
end
|
|
108
|
+
end
|
|
109
|
+
|
|
110
|
+
describe "stuff in before blocks" do
|
|
111
|
+
describe "with :suite" do
|
|
112
|
+
it "should be available in the example" do
|
|
113
|
+
$before_suite.should == "before suite"
|
|
114
|
+
end
|
|
115
|
+
end
|
|
116
|
+
describe "with :all" do
|
|
117
|
+
it "should be available in the example" do
|
|
118
|
+
@before_all.should == "before all"
|
|
119
|
+
end
|
|
120
|
+
end
|
|
121
|
+
describe "with :each" do
|
|
122
|
+
it "should be available in the example" do
|
|
123
|
+
@before_each.should == "before each"
|
|
124
|
+
end
|
|
125
|
+
end
|
|
126
|
+
end
|
|
127
|
+
"""
|
|
128
|
+
When I run "spec befores_in_configuration_spec.rb"
|
|
129
|
+
Then the stdout should include "3 examples, 0 failures"
|
|
130
|
+
|
|
131
|
+
Scenario: before/after blocks are run in order
|
|
132
|
+
Given a file named "ensure_block_order_spec.rb" with:
|
|
133
|
+
"""
|
|
134
|
+
Spec::Runner.configure do |config|
|
|
135
|
+
config.before(:suite) do
|
|
136
|
+
puts "before suite"
|
|
137
|
+
end
|
|
138
|
+
config.after(:suite) do
|
|
139
|
+
puts "after suite"
|
|
140
|
+
end
|
|
141
|
+
end
|
|
142
|
+
|
|
143
|
+
describe "before and after callbacks" do
|
|
144
|
+
before(:all) do
|
|
145
|
+
puts "before all"
|
|
146
|
+
end
|
|
147
|
+
|
|
148
|
+
before(:each) do
|
|
149
|
+
puts "before each"
|
|
150
|
+
end
|
|
151
|
+
|
|
152
|
+
after(:each) do
|
|
153
|
+
puts "after each"
|
|
154
|
+
end
|
|
155
|
+
|
|
156
|
+
after(:all) do
|
|
157
|
+
puts "after all"
|
|
158
|
+
end
|
|
159
|
+
|
|
160
|
+
it "gets run in order" do
|
|
161
|
+
|
|
162
|
+
end
|
|
163
|
+
end
|
|
164
|
+
"""
|
|
165
|
+
When I run "spec ensure_block_order_spec.rb"
|
|
166
|
+
Then the stdout should include /before suite\nbefore all\nbefore each\nafter each\n\.after all\n.*after suite/m
|
|
167
|
+
|