rspec-instructure 1.3.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/.autotest +5 -0
- data/.document +7 -0
- data/.gitignore +15 -0
- data/Gemfile +20 -0
- data/History.rdoc +1565 -0
- data/License.txt +22 -0
- data/README.rdoc +44 -0
- data/Rakefile +110 -0
- data/Ruby1.9.rdoc +31 -0
- data/TODO.txt +17 -0
- data/Upgrade.rdoc +260 -0
- data/bin/autospec +4 -0
- data/bin/spec +5 -0
- data/cucumber.yml +5 -0
- data/example_spec.rb +4 -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 +43 -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-pending/cli/conditional_exclusion.feature +39 -0
- data/features-pending/heckle/heckle.feature +56 -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/formatters/nested_formatter.feature +32 -0
- data/features/interop/cucumber_stubs_dont_leak.feature +11 -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 +37 -0
- data/features/matchers/define_matcher_with_fluent_interface.feature +48 -0
- data/features/matchers/define_wrapped_matcher.feature +56 -0
- data/features/matchers/match_unless_raises.feature +60 -0
- data/features/matchers/match_unless_raises_unexpected_error.feature +39 -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/block_local_expectations.feature +62 -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 +52 -0
- data/features/step_definitions/stubbing_steps.rb +16 -0
- data/features/subject/explicit_subject.feature +31 -0
- data/features/subject/implicit_subject.feature +43 -0
- data/features/support/env.rb +83 -0
- data/features/support/matchers/smart_match.rb +31 -0
- data/init.rb +9 -0
- data/lib/autotest/discover.rb +3 -0
- data/lib/autotest/rspec.rb +54 -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 +41 -0
- data/lib/spec/dsl.rb +1 -0
- data/lib/spec/dsl/main.rb +93 -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 +287 -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 +152 -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 +114 -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/extensions/instance_exec.rb +31 -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 +36 -0
- data/lib/spec/interop/test/unit/ui/console/testrunner.rb +61 -0
- data/lib/spec/matchers.rb +214 -0
- data/lib/spec/matchers/be.rb +249 -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/generated_descriptions.rb +36 -0
- data/lib/spec/matchers/has.rb +35 -0
- data/lib/spec/matchers/have.rb +152 -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 +132 -0
- data/lib/spec/matchers/method_missing.rb +9 -0
- data/lib/spec/matchers/operator_matcher.rb +83 -0
- data/lib/spec/matchers/pretty.rb +37 -0
- data/lib/spec/matchers/raise_exception.rb +131 -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 +134 -0
- data/lib/spec/matchers/throw_symbol.rb +100 -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 +344 -0
- data/lib/spec/mocks/methods.rb +94 -0
- data/lib/spec/mocks/mock.rb +71 -0
- data/lib/spec/mocks/order_group.rb +29 -0
- data/lib/spec/mocks/proxy.rb +254 -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 +78 -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 +202 -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 +32 -0
- data/lib/spec/runner/example_group_runner.rb +62 -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 +50 -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 +77 -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/rspec.gemspec +26 -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 +126 -0
- data/spec/ruby_forker.rb +13 -0
- data/spec/spec.opts +6 -0
- data/spec/spec/dsl/main_spec.rb +103 -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 +778 -0
- data/spec/spec/example/example_group_proxy_spec.rb +107 -0
- data/spec/spec/example/example_group_spec.rb +632 -0
- data/spec/spec/example/example_matcher_spec.rb +85 -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 +110 -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 +31 -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 +460 -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 +190 -0
- data/spec/spec/matchers/have_spec.rb +381 -0
- data/spec/spec/matchers/include_spec.rb +88 -0
- data/spec/spec/matchers/match_array_spec.rb +115 -0
- data/spec/spec/matchers/match_spec.rb +57 -0
- data/spec/spec/matchers/matcher_spec.rb +289 -0
- data/spec/spec/matchers/matchers_spec.rb +2 -0
- data/spec/spec/matchers/operator_matcher_spec.rb +191 -0
- data/spec/spec/matchers/pretty_spec.rb +22 -0
- data/spec/spec/matchers/raise_exception_spec.rb +345 -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 +100 -0
- data/spec/spec/matchers/throw_symbol_spec.rb +121 -0
- data/spec/spec/mocks/and_yield_spec.rb +117 -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_1049_spec.rb +30 -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 +17 -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/bug_report_957_spec.rb +22 -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 +601 -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 +162 -0
- data/spec/spec/runner/configuration_spec.rb +320 -0
- data/spec/spec/runner/drb_command_line_spec.rb +146 -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_formatted-1.9.2.html +377 -0
- data/spec/spec/runner/formatter/html_formatter_spec.rb +118 -0
- data/spec/spec/runner/formatter/nested_text_formatter_spec.rb +329 -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_formatted-1.9.2.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 +552 -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 +123 -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 +113 -0
- data/spec/support/macros.rb +29 -0
- data/spec/support/spec_classes.rb +133 -0
- metadata +727 -0
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
Feature: explicit subject
|
|
2
|
+
|
|
3
|
+
You can override the implicit subject using the subject() method.
|
|
4
|
+
|
|
5
|
+
Scenario: subject in top level group
|
|
6
|
+
Given a file named "top_level_subject_spec.rb" with:
|
|
7
|
+
"""
|
|
8
|
+
describe Array, "with some elements" do
|
|
9
|
+
subject { [1,2,3] }
|
|
10
|
+
it "should have the prescribed elements" do
|
|
11
|
+
subject.should == [1,2,3]
|
|
12
|
+
end
|
|
13
|
+
end
|
|
14
|
+
"""
|
|
15
|
+
When I run "spec top_level_subject_spec.rb"
|
|
16
|
+
Then the stdout should include "1 example, 0 failures"
|
|
17
|
+
|
|
18
|
+
Scenario: subject in a nested group
|
|
19
|
+
Given a file named "nested_subject_spec.rb" with:
|
|
20
|
+
"""
|
|
21
|
+
describe Array do
|
|
22
|
+
subject { [1,2,3] }
|
|
23
|
+
describe "with some elements" do
|
|
24
|
+
it "should have the prescribed elements" do
|
|
25
|
+
subject.should == [1,2,3]
|
|
26
|
+
end
|
|
27
|
+
end
|
|
28
|
+
end
|
|
29
|
+
"""
|
|
30
|
+
When I run "spec nested_subject_spec.rb"
|
|
31
|
+
Then the stdout should include "1 example, 0 failures"
|
|
@@ -0,0 +1,43 @@
|
|
|
1
|
+
Feature: implicit subject
|
|
2
|
+
|
|
3
|
+
The first argument to the outermost example group block is
|
|
4
|
+
made available to each example as an implicit subject of
|
|
5
|
+
that example.
|
|
6
|
+
|
|
7
|
+
Scenario: subject in top level group
|
|
8
|
+
Given a file named "top_level_subject_spec.rb" with:
|
|
9
|
+
"""
|
|
10
|
+
describe Array, "when first created" do
|
|
11
|
+
it "should be empty" do
|
|
12
|
+
subject.should == []
|
|
13
|
+
end
|
|
14
|
+
end
|
|
15
|
+
"""
|
|
16
|
+
When I run "spec top_level_subject_spec.rb"
|
|
17
|
+
Then the stdout should include "1 example, 0 failures"
|
|
18
|
+
|
|
19
|
+
Scenario: subject in a nested group
|
|
20
|
+
Given a file named "nested_subject_spec.rb" with:
|
|
21
|
+
"""
|
|
22
|
+
describe Array do
|
|
23
|
+
describe "when first created" do
|
|
24
|
+
it "should be empty" do
|
|
25
|
+
subject.should == []
|
|
26
|
+
end
|
|
27
|
+
end
|
|
28
|
+
end
|
|
29
|
+
"""
|
|
30
|
+
When I run "spec nested_subject_spec.rb"
|
|
31
|
+
Then the stdout should include "1 example, 0 failures"
|
|
32
|
+
|
|
33
|
+
Scenario: subject with getters
|
|
34
|
+
Given a file named "subject_with_getter_spec.rb" with:
|
|
35
|
+
"""
|
|
36
|
+
describe Array do
|
|
37
|
+
describe "when first created" do
|
|
38
|
+
its(:length) { should == 0 }
|
|
39
|
+
end
|
|
40
|
+
end
|
|
41
|
+
"""
|
|
42
|
+
When I run "spec subject_with_getter_spec.rb"
|
|
43
|
+
Then the stdout should include "1 example, 0 failures"
|
|
@@ -0,0 +1,83 @@
|
|
|
1
|
+
$:.unshift File.expand_path("../../../lib", __FILE__)
|
|
2
|
+
|
|
3
|
+
require 'spec/expectations'
|
|
4
|
+
require 'forwardable'
|
|
5
|
+
require 'tempfile'
|
|
6
|
+
require './spec/ruby_forker'
|
|
7
|
+
require './features/support/matchers/smart_match'
|
|
8
|
+
require 'spec/stubs/cucumber'
|
|
9
|
+
|
|
10
|
+
class RspecWorld
|
|
11
|
+
include Spec::Expectations
|
|
12
|
+
include Spec::Matchers
|
|
13
|
+
include RubyForker
|
|
14
|
+
|
|
15
|
+
extend Forwardable
|
|
16
|
+
def_delegators RspecWorld, :working_dir, :spec_command, :cmdline_file, :rspec_lib
|
|
17
|
+
|
|
18
|
+
def self.working_dir
|
|
19
|
+
@working_dir ||= File.expand_path(File.join(File.dirname(__FILE__), "/../../tmp/cucumber-generated-files"))
|
|
20
|
+
end
|
|
21
|
+
|
|
22
|
+
def self.spec_command
|
|
23
|
+
@spec_command ||= File.expand_path(File.join(File.dirname(__FILE__), "/../../bin/spec"))
|
|
24
|
+
end
|
|
25
|
+
|
|
26
|
+
def self.cmdline_file
|
|
27
|
+
@cmdline_file ||= File.expand_path(File.join(File.dirname(__FILE__), "/../../resources/helpers/cmdline.rb"))
|
|
28
|
+
end
|
|
29
|
+
|
|
30
|
+
def self.rspec_lib
|
|
31
|
+
@rspec_lib ||= File.join(working_dir, "/../../lib")
|
|
32
|
+
end
|
|
33
|
+
|
|
34
|
+
def spec(args)
|
|
35
|
+
ruby("#{spec_command} #{args}")
|
|
36
|
+
end
|
|
37
|
+
|
|
38
|
+
def cmdline(args)
|
|
39
|
+
ruby("#{cmdline_file} #{args}")
|
|
40
|
+
end
|
|
41
|
+
|
|
42
|
+
def create_file(file_name, contents)
|
|
43
|
+
file_path = File.join(working_dir, file_name)
|
|
44
|
+
File.open(file_path, "w") { |f| f << contents }
|
|
45
|
+
end
|
|
46
|
+
|
|
47
|
+
def create_directory(dirname)
|
|
48
|
+
FileUtils.mkdir_p File.join(working_dir, dirname)
|
|
49
|
+
end
|
|
50
|
+
|
|
51
|
+
def last_stdout
|
|
52
|
+
@stdout
|
|
53
|
+
end
|
|
54
|
+
|
|
55
|
+
def last_stderr
|
|
56
|
+
@stderr
|
|
57
|
+
end
|
|
58
|
+
|
|
59
|
+
def last_exit_code
|
|
60
|
+
@exit_code
|
|
61
|
+
end
|
|
62
|
+
|
|
63
|
+
# it seems like this, and the last_* methods, could be moved into RubyForker-- is that being used anywhere but the features?
|
|
64
|
+
def ruby(args)
|
|
65
|
+
stderr_file = Tempfile.new('rspec')
|
|
66
|
+
stderr_file.close
|
|
67
|
+
Dir.chdir(working_dir) do
|
|
68
|
+
@stdout = super("-I #{rspec_lib} #{args}", stderr_file.path)
|
|
69
|
+
end
|
|
70
|
+
@stderr = IO.read(stderr_file.path)
|
|
71
|
+
@exit_code = $?.to_i
|
|
72
|
+
end
|
|
73
|
+
|
|
74
|
+
end
|
|
75
|
+
|
|
76
|
+
Before do
|
|
77
|
+
FileUtils.rm_rf RspecWorld.working_dir if test ?d, RspecWorld.working_dir
|
|
78
|
+
FileUtils.mkdir_p RspecWorld.working_dir
|
|
79
|
+
end
|
|
80
|
+
|
|
81
|
+
World do
|
|
82
|
+
RspecWorld.new
|
|
83
|
+
end
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
Spec::Matchers.define :smart_match do |expected|
|
|
2
|
+
def regexp?
|
|
3
|
+
/^\/.*\/?$/
|
|
4
|
+
end
|
|
5
|
+
|
|
6
|
+
def quoted?
|
|
7
|
+
/^".*"$/
|
|
8
|
+
end
|
|
9
|
+
|
|
10
|
+
match do |actual|
|
|
11
|
+
case expected
|
|
12
|
+
when regexp?
|
|
13
|
+
actual =~ eval(expected)
|
|
14
|
+
when quoted?
|
|
15
|
+
actual.index(eval(expected))
|
|
16
|
+
else # multi-line string
|
|
17
|
+
actual.index(expected)
|
|
18
|
+
end
|
|
19
|
+
end
|
|
20
|
+
|
|
21
|
+
failure_message_for_should do |actual|
|
|
22
|
+
<<-MESSAGE
|
|
23
|
+
#{'*'*50}
|
|
24
|
+
got:
|
|
25
|
+
#{'*'*30}
|
|
26
|
+
#{actual}
|
|
27
|
+
#{'*'*50}
|
|
28
|
+
MESSAGE
|
|
29
|
+
end
|
|
30
|
+
end
|
|
31
|
+
|
data/init.rb
ADDED
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
# Placeholder to satisfy Rails.
|
|
2
|
+
#
|
|
3
|
+
# Do NOT add any require statements to this file. Doing
|
|
4
|
+
# so will cause Rails to load this plugin all of the time.
|
|
5
|
+
#
|
|
6
|
+
# Running 'ruby script/generate rspec' will
|
|
7
|
+
# generate spec/spec_helper.rb, which includes the necessary
|
|
8
|
+
# require statements and configuration. This file should
|
|
9
|
+
# be required by all of your spec files.
|
|
@@ -0,0 +1,54 @@
|
|
|
1
|
+
require 'autotest'
|
|
2
|
+
|
|
3
|
+
Autotest.add_hook :initialize do |at|
|
|
4
|
+
at.clear_mappings
|
|
5
|
+
# watch out for Ruby bug (1.8.6): %r(/) != /\//
|
|
6
|
+
at.add_mapping(%r%^spec/.*_spec\.rb$%) { |filename, _|
|
|
7
|
+
filename
|
|
8
|
+
}
|
|
9
|
+
at.add_mapping(%r%^lib/(.*)\.rb$%) { |_, m|
|
|
10
|
+
["spec/#{m[1]}_spec.rb"]
|
|
11
|
+
}
|
|
12
|
+
at.add_mapping(%r%^spec/(spec_helper|shared/.*)\.rb$%) {
|
|
13
|
+
at.files_matching %r%^spec/.*_spec\.rb$%
|
|
14
|
+
}
|
|
15
|
+
end
|
|
16
|
+
|
|
17
|
+
class RspecCommandError < StandardError; end
|
|
18
|
+
|
|
19
|
+
class Autotest::Rspec < Autotest
|
|
20
|
+
|
|
21
|
+
SPEC_PROGRAM = File.expand_path(File.join(File.dirname(__FILE__), '..', '..', 'bin', 'spec'))
|
|
22
|
+
|
|
23
|
+
def initialize
|
|
24
|
+
super
|
|
25
|
+
self.failed_results_re = /^\d+\)\n(?:\e\[\d*m)?(?:.*?in )?'([^\n]*)'(?: FAILED)?(?:\e\[\d*m)?\n\n?(.*?(\n\n\(.*?)?)\n\n/m
|
|
26
|
+
self.completed_re = /\n(?:\e\[\d*m)?\d* examples?/m
|
|
27
|
+
end
|
|
28
|
+
|
|
29
|
+
def consolidate_failures(failed)
|
|
30
|
+
filters = new_hash_of_arrays
|
|
31
|
+
failed.each do |spec, trace|
|
|
32
|
+
if trace =~ /\n(\.\/)?(.*spec\.rb):[\d]+:/
|
|
33
|
+
filters[$2] << spec
|
|
34
|
+
end
|
|
35
|
+
end
|
|
36
|
+
return filters
|
|
37
|
+
end
|
|
38
|
+
|
|
39
|
+
def make_test_cmd(files_to_test)
|
|
40
|
+
files_to_test.empty? ? '' :
|
|
41
|
+
"#{ruby} #{SPEC_PROGRAM} --autospec #{normalize(files_to_test).keys.flatten.join(' ')} #{add_options_if_present}"
|
|
42
|
+
end
|
|
43
|
+
|
|
44
|
+
def normalize(files_to_test)
|
|
45
|
+
files_to_test.keys.inject({}) do |result, filename|
|
|
46
|
+
result[File.expand_path(filename)] = []
|
|
47
|
+
result
|
|
48
|
+
end
|
|
49
|
+
end
|
|
50
|
+
|
|
51
|
+
def add_options_if_present # :nodoc:
|
|
52
|
+
File.exist?("spec/spec.opts") ? "-O #{File.join('spec','spec.opts')} " : ""
|
|
53
|
+
end
|
|
54
|
+
end
|
data/lib/spec.rb
ADDED
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
#!/usr/bin/env ruby
|
|
2
|
+
#
|
|
3
|
+
# Created by Jim Weirich on 2007-04-10.
|
|
4
|
+
# Copyright (c) 2007. All rights reserved.
|
|
5
|
+
|
|
6
|
+
require 'rubygems' unless ENV['NO_RUBYGEMS']
|
|
7
|
+
require 'flexmock/rspec'
|
|
8
|
+
|
|
9
|
+
module Spec
|
|
10
|
+
module Adapters
|
|
11
|
+
module MockFramework
|
|
12
|
+
include FlexMock::MockContainer
|
|
13
|
+
def setup_mocks_for_rspec
|
|
14
|
+
# No setup required
|
|
15
|
+
end
|
|
16
|
+
def verify_mocks_for_rspec
|
|
17
|
+
flexmock_verify
|
|
18
|
+
end
|
|
19
|
+
def teardown_mocks_for_rspec
|
|
20
|
+
flexmock_close
|
|
21
|
+
end
|
|
22
|
+
end
|
|
23
|
+
end
|
|
24
|
+
end
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
require 'rubygems' unless ENV['NO_RUBYGEMS']
|
|
2
|
+
require 'mocha/standalone'
|
|
3
|
+
require 'mocha/object'
|
|
4
|
+
|
|
5
|
+
module Spec
|
|
6
|
+
module Adapters
|
|
7
|
+
module MockFramework
|
|
8
|
+
# Mocha::Standalone was deprecated as of Mocha 0.9.7.
|
|
9
|
+
begin
|
|
10
|
+
include Mocha::API
|
|
11
|
+
rescue NameError
|
|
12
|
+
include Mocha::Standalone
|
|
13
|
+
end
|
|
14
|
+
def setup_mocks_for_rspec
|
|
15
|
+
mocha_setup
|
|
16
|
+
end
|
|
17
|
+
def verify_mocks_for_rspec
|
|
18
|
+
mocha_verify
|
|
19
|
+
end
|
|
20
|
+
def teardown_mocks_for_rspec
|
|
21
|
+
mocha_teardown
|
|
22
|
+
end
|
|
23
|
+
end
|
|
24
|
+
end
|
|
25
|
+
end
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
require 'rubygems' unless ENV['NO_RUBYGEMS']
|
|
2
|
+
require 'rr'
|
|
3
|
+
|
|
4
|
+
patterns = ::Spec::Runner::QuietBacktraceTweaker::IGNORE_PATTERNS
|
|
5
|
+
patterns.push(RR::Errors::BACKTRACE_IDENTIFIER)
|
|
6
|
+
|
|
7
|
+
module Spec
|
|
8
|
+
module Adapters
|
|
9
|
+
module MockFramework
|
|
10
|
+
include RR::Extensions::InstanceMethods
|
|
11
|
+
def setup_mocks_for_rspec
|
|
12
|
+
RR::Space.instance.reset
|
|
13
|
+
end
|
|
14
|
+
def verify_mocks_for_rspec
|
|
15
|
+
RR::Space.instance.verify_doubles
|
|
16
|
+
end
|
|
17
|
+
def teardown_mocks_for_rspec
|
|
18
|
+
RR::Space.instance.reset
|
|
19
|
+
end
|
|
20
|
+
end
|
|
21
|
+
end
|
|
22
|
+
end
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
require 'spec/mocks/framework'
|
|
2
|
+
require 'spec/mocks/extensions'
|
|
3
|
+
|
|
4
|
+
module Spec
|
|
5
|
+
module Adapters
|
|
6
|
+
unless defined?(MockFramework)
|
|
7
|
+
module MockFramework
|
|
8
|
+
include Spec::Mocks::ExampleMethods
|
|
9
|
+
def setup_mocks_for_rspec
|
|
10
|
+
$rspec_mocks ||= Spec::Mocks::Space.new
|
|
11
|
+
end
|
|
12
|
+
def verify_mocks_for_rspec
|
|
13
|
+
$rspec_mocks.verify_all
|
|
14
|
+
end
|
|
15
|
+
def teardown_mocks_for_rspec
|
|
16
|
+
$rspec_mocks.reset_all
|
|
17
|
+
end
|
|
18
|
+
end
|
|
19
|
+
end
|
|
20
|
+
end
|
|
21
|
+
end
|
data/lib/spec/autorun.rb
ADDED
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
module Spec
|
|
2
|
+
class << self
|
|
3
|
+
def deprecate(method, alternate_method=nil)
|
|
4
|
+
return if Spec::Runner.configuration.suppress_deprecation_warnings?
|
|
5
|
+
message = <<-NOTICE
|
|
6
|
+
|
|
7
|
+
*****************************************************************
|
|
8
|
+
DEPRECATION WARNING: you are using deprecated behaviour that will
|
|
9
|
+
be removed from a future version of RSpec.
|
|
10
|
+
|
|
11
|
+
#{caller(0)[2]}
|
|
12
|
+
|
|
13
|
+
* #{method} is deprecated.
|
|
14
|
+
NOTICE
|
|
15
|
+
if alternate_method
|
|
16
|
+
message << <<-ADDITIONAL
|
|
17
|
+
* please use #{alternate_method} instead.
|
|
18
|
+
ADDITIONAL
|
|
19
|
+
end
|
|
20
|
+
|
|
21
|
+
message << "*****************************************************************"
|
|
22
|
+
warn(message)
|
|
23
|
+
end
|
|
24
|
+
|
|
25
|
+
def warn(message)
|
|
26
|
+
Kernel.warn(message)
|
|
27
|
+
end
|
|
28
|
+
|
|
29
|
+
end
|
|
30
|
+
|
|
31
|
+
class HashWithDeprecationNotice < Hash
|
|
32
|
+
def initialize(method, alternate_method=nil, &block)
|
|
33
|
+
@method, @alternate_method = method, alternate_method
|
|
34
|
+
end
|
|
35
|
+
def []=(k,v)
|
|
36
|
+
Spec.deprecate(@method, @alternate_method)
|
|
37
|
+
super
|
|
38
|
+
end
|
|
39
|
+
end
|
|
40
|
+
end
|
|
41
|
+
|
data/lib/spec/dsl.rb
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
require 'spec/dsl/main'
|
|
@@ -0,0 +1,93 @@
|
|
|
1
|
+
module Spec
|
|
2
|
+
module DSL
|
|
3
|
+
module Main
|
|
4
|
+
include Spec::Example::ArgsAndOptions
|
|
5
|
+
|
|
6
|
+
# Creates and returns a class that includes the ExampleGroupMethods
|
|
7
|
+
# module. Which ExampleGroup type is created depends on the directory of the file
|
|
8
|
+
# calling this method. For example, Spec::Rails will use different
|
|
9
|
+
# classes for specs living in <tt>spec/models</tt>,
|
|
10
|
+
# <tt>spec/helpers</tt>, <tt>spec/views</tt> and
|
|
11
|
+
# <tt>spec/controllers</tt>.
|
|
12
|
+
#
|
|
13
|
+
# It is also possible to override autodiscovery of the example group
|
|
14
|
+
# type with an options Hash as the last argument:
|
|
15
|
+
#
|
|
16
|
+
# describe "name", :type => :something_special do ...
|
|
17
|
+
#
|
|
18
|
+
# The reason for using different example group classes is to have different
|
|
19
|
+
# matcher methods available from within the <tt>describe</tt> block.
|
|
20
|
+
#
|
|
21
|
+
# See Spec::Example::ExampleGroupFactory#register for details about how to
|
|
22
|
+
# register special implementations.
|
|
23
|
+
#
|
|
24
|
+
def describe(*args, &block)
|
|
25
|
+
raise Spec::Example::NoDescriptionError.new("example group", caller(0)[1]) if args.empty?
|
|
26
|
+
add_options(args, :scope => self)
|
|
27
|
+
set_location(args.options, caller(0)[1])
|
|
28
|
+
Spec::Example::ExampleGroupFactory.create_example_group(*args, &block)
|
|
29
|
+
end
|
|
30
|
+
alias :context :describe unless defined?(IRB::Context)
|
|
31
|
+
|
|
32
|
+
# Creates an example group that can be shared by other example groups
|
|
33
|
+
#
|
|
34
|
+
# == Examples
|
|
35
|
+
#
|
|
36
|
+
# share_examples_for "All Editions" do
|
|
37
|
+
# it "all editions behaviour" ...
|
|
38
|
+
# end
|
|
39
|
+
#
|
|
40
|
+
# describe SmallEdition do
|
|
41
|
+
# it_should_behave_like "All Editions"
|
|
42
|
+
#
|
|
43
|
+
# it "should do small edition stuff" do
|
|
44
|
+
# ...
|
|
45
|
+
# end
|
|
46
|
+
# end
|
|
47
|
+
def share_examples_for(*args, &block)
|
|
48
|
+
add_options(args)
|
|
49
|
+
set_location(args.options, caller(0)[1])
|
|
50
|
+
Spec::Example::ExampleGroupFactory.create_shared_example_group(*args, &block)
|
|
51
|
+
end
|
|
52
|
+
alias :shared_examples_for :share_examples_for
|
|
53
|
+
|
|
54
|
+
# Creates a Shared Example Group and assigns it to a constant
|
|
55
|
+
#
|
|
56
|
+
# share_as :AllEditions do
|
|
57
|
+
# it "should do all editions stuff" ...
|
|
58
|
+
# end
|
|
59
|
+
#
|
|
60
|
+
# describe SmallEdition do
|
|
61
|
+
# it_should_behave_like AllEditions
|
|
62
|
+
#
|
|
63
|
+
# it "should do small edition stuff" do
|
|
64
|
+
# ...
|
|
65
|
+
# end
|
|
66
|
+
# end
|
|
67
|
+
#
|
|
68
|
+
# And, for those of you who prefer to use something more like Ruby, you
|
|
69
|
+
# can just include the module directly
|
|
70
|
+
#
|
|
71
|
+
# describe SmallEdition do
|
|
72
|
+
# include AllEditions
|
|
73
|
+
#
|
|
74
|
+
# it "should do small edition stuff" do
|
|
75
|
+
# ...
|
|
76
|
+
# end
|
|
77
|
+
# end
|
|
78
|
+
def share_as(name, &block)
|
|
79
|
+
Spec.deprecate("share_as","shared_examples_for")
|
|
80
|
+
begin
|
|
81
|
+
args = [name]
|
|
82
|
+
add_options(args)
|
|
83
|
+
set_location(args.options, caller(0)[1])
|
|
84
|
+
Object.const_set(name, Spec::Example::ExampleGroupFactory.create_shared_example_group(*args, &block))
|
|
85
|
+
rescue NameError => e
|
|
86
|
+
raise NameError.new(e.message + "\nThe first argument to share_as must be a legal name for a constant\n")
|
|
87
|
+
end
|
|
88
|
+
end
|
|
89
|
+
end
|
|
90
|
+
end
|
|
91
|
+
end
|
|
92
|
+
|
|
93
|
+
include Spec::DSL::Main
|