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,56 @@
|
|
|
1
|
+
Feature: Spec and test together
|
|
2
|
+
|
|
3
|
+
As an RSpec user
|
|
4
|
+
I want to run one example identified by the line number
|
|
5
|
+
|
|
6
|
+
Background:
|
|
7
|
+
Given a file named "example.rb" with:
|
|
8
|
+
"""
|
|
9
|
+
describe "a group" do
|
|
10
|
+
|
|
11
|
+
it "has a first example" do
|
|
12
|
+
|
|
13
|
+
end
|
|
14
|
+
|
|
15
|
+
it "has a second example" do
|
|
16
|
+
|
|
17
|
+
end
|
|
18
|
+
|
|
19
|
+
end
|
|
20
|
+
"""
|
|
21
|
+
|
|
22
|
+
Scenario: two examples - first example on declaration line
|
|
23
|
+
When I run "spec example.rb:3 --format nested"
|
|
24
|
+
Then the stdout should include "1 example, 0 failures"
|
|
25
|
+
And the stdout should include "has a first example"
|
|
26
|
+
But the stdout should not match "has a second example"
|
|
27
|
+
|
|
28
|
+
Scenario: two examples - first example from line inside declaration
|
|
29
|
+
When I run "spec example.rb:4 --format nested"
|
|
30
|
+
Then the stdout should include "1 example, 0 failures"
|
|
31
|
+
And the stdout should include "has a first example"
|
|
32
|
+
But the stdout should not match "has a second example"
|
|
33
|
+
|
|
34
|
+
Scenario: two examples - first example from line below declaration
|
|
35
|
+
When I run "spec example.rb:6 --format nested"
|
|
36
|
+
Then the stdout should include "1 example, 0 failures"
|
|
37
|
+
And the stdout should include "has a first example"
|
|
38
|
+
But the stdout should not match "has a second example"
|
|
39
|
+
|
|
40
|
+
Scenario: two examples - second example from line below declaration
|
|
41
|
+
When I run "spec example.rb:7 --format nested"
|
|
42
|
+
Then the stdout should include "1 example, 0 failures"
|
|
43
|
+
And the stdout should include "has a second example"
|
|
44
|
+
But the stdout should not match "has a first example"
|
|
45
|
+
|
|
46
|
+
Scenario: two examples - both examples from the group declaration
|
|
47
|
+
When I run "spec example.rb:1 --format nested"
|
|
48
|
+
Then the stdout should include "2 examples, 0 failures"
|
|
49
|
+
And the stdout should include "has a second example"
|
|
50
|
+
And the stdout should include "has a first example"
|
|
51
|
+
|
|
52
|
+
Scenario: two examples - both examples from above the first example declaration
|
|
53
|
+
When I run "spec example.rb:2 --format nested"
|
|
54
|
+
Then the stdout should include "2 examples, 0 failures"
|
|
55
|
+
And the stdout should include "has a second example"
|
|
56
|
+
And the stdout should include "has a first example"
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
Feature: Spec and test together
|
|
2
|
+
|
|
3
|
+
As an RSpec user
|
|
4
|
+
I want to run one example identified by the line number
|
|
5
|
+
|
|
6
|
+
Background:
|
|
7
|
+
Given a file named "example.rb" with:
|
|
8
|
+
"""
|
|
9
|
+
describe 9 do
|
|
10
|
+
|
|
11
|
+
it { should be > 8 }
|
|
12
|
+
|
|
13
|
+
it { should be < 10 }
|
|
14
|
+
|
|
15
|
+
end
|
|
16
|
+
"""
|
|
17
|
+
|
|
18
|
+
Scenario: two examples - first example on declaration line
|
|
19
|
+
When I run "spec example.rb:3 --format nested"
|
|
20
|
+
Then the stdout should include "1 example, 0 failures"
|
|
21
|
+
Then the stdout should include "should be > 8"
|
|
22
|
+
But the stdout should not match "should be < 10"
|
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
Feature: Define example attribute
|
|
2
|
+
|
|
3
|
+
In order to streamline process
|
|
4
|
+
As an RSpec user
|
|
5
|
+
I want to easily define helper methods that act as a variable assignment
|
|
6
|
+
|
|
7
|
+
It is fairly common to start with a local variable in one example, use the same
|
|
8
|
+
local variable in the next, and then extract the declaration of that variable
|
|
9
|
+
to before(:each). This requires converting the locals to instance variables.
|
|
10
|
+
|
|
11
|
+
This feature streamlines the process by defining a helper method so you can extract
|
|
12
|
+
the duplication without having to change other references to the same variables
|
|
13
|
+
to @instance_variables.
|
|
14
|
+
|
|
15
|
+
Scenario:
|
|
16
|
+
Given a file named "counter_spec.rb" with:
|
|
17
|
+
"""
|
|
18
|
+
require 'spec/autorun'
|
|
19
|
+
|
|
20
|
+
class Counter
|
|
21
|
+
def initialize
|
|
22
|
+
@count = 0
|
|
23
|
+
end
|
|
24
|
+
def count
|
|
25
|
+
@count += 1
|
|
26
|
+
end
|
|
27
|
+
end
|
|
28
|
+
|
|
29
|
+
describe Counter do
|
|
30
|
+
let(:counter) { Counter.new }
|
|
31
|
+
it "returns 1 the first time" do
|
|
32
|
+
counter.count.should == 1
|
|
33
|
+
end
|
|
34
|
+
it "returns 2 the second time because the counter itself is cached by the 'assign' method" do
|
|
35
|
+
counter.count
|
|
36
|
+
counter.count.should == 2
|
|
37
|
+
end
|
|
38
|
+
end
|
|
39
|
+
"""
|
|
40
|
+
When I run "spec counter_spec.rb"
|
|
41
|
+
Then the stdout should include "2 examples, 0 failures"
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
Feature: Spec::ExampleGroup with should methods
|
|
2
|
+
|
|
3
|
+
As an RSpec adopter accustomed to classes and methods
|
|
4
|
+
I want to use should_* methods in an ExampleGroup
|
|
5
|
+
So that I use RSpec with classes and methods that look more like RSpec examples
|
|
6
|
+
|
|
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'
|
|
11
|
+
|
|
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"
|
|
23
|
+
Then the exit code should be 256
|
|
24
|
+
And the stdout should include "2 examples, 1 failure"
|
|
25
|
+
|
|
26
|
+
Scenarios: Run with ruby and spec
|
|
27
|
+
| Command |
|
|
28
|
+
| ruby |
|
|
29
|
+
| spec |
|
|
@@ -0,0 +1,59 @@
|
|
|
1
|
+
Feature: implicit docstrings
|
|
2
|
+
|
|
3
|
+
As an RSpec user
|
|
4
|
+
I want examples to generate their own names
|
|
5
|
+
So that I can reduce duplication between example names and example code
|
|
6
|
+
|
|
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
|
|
12
|
+
|
|
13
|
+
specify { 3.should be < 5 }
|
|
14
|
+
|
|
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 include /should be < 5/
|
|
25
|
+
And the stdout should include /should include "a"/
|
|
26
|
+
And the stdout should include /should respond to #size/
|
|
27
|
+
|
|
28
|
+
Scenarios: Run with ruby and spec
|
|
29
|
+
| Command |
|
|
30
|
+
| ruby |
|
|
31
|
+
| spec |
|
|
32
|
+
|
|
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
|
|
38
|
+
|
|
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
|
|
44
|
+
|
|
45
|
+
it { 3.should be > 5 }
|
|
46
|
+
|
|
47
|
+
it { ["a"].should include("b") }
|
|
48
|
+
|
|
49
|
+
it { [1,2,3].should_not respond_to(:size) }
|
|
50
|
+
|
|
51
|
+
end
|
|
52
|
+
"""
|
|
53
|
+
|
|
54
|
+
When I run "<Command> failing_implicit_docstrings_example.rb -fs"
|
|
55
|
+
|
|
56
|
+
Then the stdout should include /should equal 2/
|
|
57
|
+
And the stdout should include /should be > 5/
|
|
58
|
+
And the stdout should include /should include "b"/
|
|
59
|
+
And the stdout should include /should not respond to #size/
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
Feature: Nested example groups
|
|
2
|
+
|
|
3
|
+
As an RSpec user
|
|
4
|
+
I want to nest examples groups
|
|
5
|
+
So that I can better organize my examples
|
|
6
|
+
|
|
7
|
+
Scenario Outline: Nested example groups
|
|
8
|
+
Given a file named "nested_example_groups.rb" with:
|
|
9
|
+
"""
|
|
10
|
+
require 'spec/autorun'
|
|
11
|
+
|
|
12
|
+
describe "Some Object" do
|
|
13
|
+
describe "with some more context" do
|
|
14
|
+
it "should do this" do
|
|
15
|
+
true.should be_true
|
|
16
|
+
end
|
|
17
|
+
end
|
|
18
|
+
describe "with some other context" do
|
|
19
|
+
it "should do that" do
|
|
20
|
+
false.should be_false
|
|
21
|
+
end
|
|
22
|
+
end
|
|
23
|
+
end
|
|
24
|
+
"""
|
|
25
|
+
When I run "<Command> nested_example_groups.rb -fs"
|
|
26
|
+
Then the stdout should include /Some Object with some more context/
|
|
27
|
+
And the stdout should include /Some Object with some other context/
|
|
28
|
+
|
|
29
|
+
Scenarios: Run with ruby and spec
|
|
30
|
+
| Command |
|
|
31
|
+
| ruby |
|
|
32
|
+
| spec |
|
|
@@ -0,0 +1,54 @@
|
|
|
1
|
+
Feature: customized message
|
|
2
|
+
|
|
3
|
+
In order to get the feedback I want
|
|
4
|
+
As an RSpec user
|
|
5
|
+
I want to customize the failure message per example
|
|
6
|
+
|
|
7
|
+
Scenario: one additional method
|
|
8
|
+
Given a file named "node_spec.rb.rb" with:
|
|
9
|
+
"""
|
|
10
|
+
class Node
|
|
11
|
+
def initialize(state=:waiting)
|
|
12
|
+
@state = state
|
|
13
|
+
end
|
|
14
|
+
def state
|
|
15
|
+
@state
|
|
16
|
+
end
|
|
17
|
+
def waiting?
|
|
18
|
+
@state == :waiting
|
|
19
|
+
end
|
|
20
|
+
def started?
|
|
21
|
+
@state == :started
|
|
22
|
+
end
|
|
23
|
+
def start
|
|
24
|
+
@state = :started
|
|
25
|
+
end
|
|
26
|
+
end
|
|
27
|
+
|
|
28
|
+
describe "a new Node" do
|
|
29
|
+
it "should be waiting" do
|
|
30
|
+
node = Node.new(:started) #start w/ started to trigger failure
|
|
31
|
+
node.should be_waiting, "node.state: #{node.state} (first example)"
|
|
32
|
+
end
|
|
33
|
+
|
|
34
|
+
it "should not be started" do
|
|
35
|
+
node = Node.new(:started) #start w/ started to trigger failure
|
|
36
|
+
node.should_not be_started, "node.state: #{node.state} (second example)"
|
|
37
|
+
end
|
|
38
|
+
end
|
|
39
|
+
|
|
40
|
+
describe "node.start" do
|
|
41
|
+
it "should change the state" do
|
|
42
|
+
node = Node.new(:started) #start w/ started to trigger failure
|
|
43
|
+
lambda {node.start}.should change{node.state}, "expected a change"
|
|
44
|
+
end
|
|
45
|
+
end
|
|
46
|
+
|
|
47
|
+
"""
|
|
48
|
+
When I run "spec node_spec.rb.rb --format specdoc"
|
|
49
|
+
Then the stdout should include "3 examples, 3 failures"
|
|
50
|
+
And the stdout should not match "to return true, got false"
|
|
51
|
+
And the stdout should not match "to return false, got true"
|
|
52
|
+
And the stdout should include "node.state: started (first example)"
|
|
53
|
+
And the stdout should include "node.state: started (second example)"
|
|
54
|
+
And the stdout should include "expected a change"
|
|
@@ -0,0 +1,65 @@
|
|
|
1
|
+
Feature: expect change
|
|
2
|
+
|
|
3
|
+
Expect some code (wrapped in a proc) to change the state of some object.
|
|
4
|
+
|
|
5
|
+
Scenario: expecting change
|
|
6
|
+
Given a file named "expect_change.rb" with:
|
|
7
|
+
"""
|
|
8
|
+
class Counter
|
|
9
|
+
class << self
|
|
10
|
+
def increment
|
|
11
|
+
@count ||= 0
|
|
12
|
+
@count += 1
|
|
13
|
+
end
|
|
14
|
+
|
|
15
|
+
def count
|
|
16
|
+
@count ||= 0
|
|
17
|
+
end
|
|
18
|
+
end
|
|
19
|
+
end
|
|
20
|
+
|
|
21
|
+
describe Counter, "#increment" do
|
|
22
|
+
it "should increment the count" do
|
|
23
|
+
expect{Counter.increment}.to change{Counter.count}.from(0).to(1)
|
|
24
|
+
end
|
|
25
|
+
|
|
26
|
+
# deliberate failure
|
|
27
|
+
it "should increment the count by 2" do
|
|
28
|
+
expect{Counter.increment}.to change{Counter.count}.by(2)
|
|
29
|
+
end
|
|
30
|
+
end
|
|
31
|
+
"""
|
|
32
|
+
When I run "spec expect_change.rb"
|
|
33
|
+
Then the stdout should include "2 examples, 1 failure"
|
|
34
|
+
Then the stdout should include "should have been changed by 2, but was changed by 1"
|
|
35
|
+
|
|
36
|
+
Scenario: expecting no change
|
|
37
|
+
Given a file named "expect_no_change.rb" with:
|
|
38
|
+
"""
|
|
39
|
+
class Counter
|
|
40
|
+
class << self
|
|
41
|
+
def increment
|
|
42
|
+
@count ||= 0
|
|
43
|
+
@count += 1
|
|
44
|
+
end
|
|
45
|
+
|
|
46
|
+
def count
|
|
47
|
+
@count ||= 0
|
|
48
|
+
end
|
|
49
|
+
end
|
|
50
|
+
end
|
|
51
|
+
|
|
52
|
+
describe Counter, "#increment" do
|
|
53
|
+
it "should not increment the count by 2" do
|
|
54
|
+
expect{Counter.increment}.to_not change{Counter.count}.from(0).to(2)
|
|
55
|
+
end
|
|
56
|
+
|
|
57
|
+
# deliberate failure
|
|
58
|
+
it "should not increment the count by 1" do
|
|
59
|
+
expect{Counter.increment}.to_not change{Counter.count}.by(1)
|
|
60
|
+
end
|
|
61
|
+
end
|
|
62
|
+
"""
|
|
63
|
+
When I run "spec expect_no_change.rb"
|
|
64
|
+
Then the stdout should include "2 examples, 1 failure"
|
|
65
|
+
Then the stdout should include "should not have changed, but did change from 1 to 2"
|
|
@@ -0,0 +1,44 @@
|
|
|
1
|
+
Feature: expect error
|
|
2
|
+
|
|
3
|
+
Expect a proc to change the state of some object.
|
|
4
|
+
|
|
5
|
+
Scenario: expect error
|
|
6
|
+
Given a file named "expect_error.rb" with:
|
|
7
|
+
"""
|
|
8
|
+
describe Object, "#non_existent_message" do
|
|
9
|
+
it "should raise" do
|
|
10
|
+
expect{Object.non_existent_message}.to raise_error(NameError)
|
|
11
|
+
end
|
|
12
|
+
end
|
|
13
|
+
|
|
14
|
+
#deliberate failure
|
|
15
|
+
describe Object, "#public_instance_methods" do
|
|
16
|
+
it "should raise" do
|
|
17
|
+
expect{Object.public_instance_methods}.to raise_error(NameError)
|
|
18
|
+
end
|
|
19
|
+
end
|
|
20
|
+
"""
|
|
21
|
+
When I run "spec expect_error.rb"
|
|
22
|
+
Then the stdout should include "2 examples, 1 failure"
|
|
23
|
+
Then the stdout should include "expected NameError but nothing was raised"
|
|
24
|
+
|
|
25
|
+
Scenario: expect no error
|
|
26
|
+
Given a file named "expect_no_error.rb" with:
|
|
27
|
+
"""
|
|
28
|
+
describe Object, "#public_instance_methods" do
|
|
29
|
+
it "should not raise" do
|
|
30
|
+
expect{Object.public_instance_methods}.to_not raise_error(NameError)
|
|
31
|
+
end
|
|
32
|
+
end
|
|
33
|
+
|
|
34
|
+
#deliberate failure
|
|
35
|
+
describe Object, "#non_existent_message" do
|
|
36
|
+
it "should not raise" do
|
|
37
|
+
expect{Object.non_existent_message}.to_not raise_error(NameError)
|
|
38
|
+
end
|
|
39
|
+
end
|
|
40
|
+
"""
|
|
41
|
+
When I run "spec expect_no_error.rb"
|
|
42
|
+
Then the stdout should include "2 examples, 1 failure"
|
|
43
|
+
Then the stdout should include "undefined method `non_existent_message'"
|
|
44
|
+
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
Feature: custom example group
|
|
2
|
+
|
|
3
|
+
Scenario: simple custom example group
|
|
4
|
+
Given a file named "custom_example_group_spec.rb" with:
|
|
5
|
+
"""
|
|
6
|
+
class CustomGroup < Spec::ExampleGroup
|
|
7
|
+
end
|
|
8
|
+
|
|
9
|
+
Spec::Example::ExampleGroupFactory.default(CustomGroup)
|
|
10
|
+
|
|
11
|
+
describe "a custom group set as the default" do
|
|
12
|
+
it "becomes the default base class for example groups" do
|
|
13
|
+
CustomGroup.should === self
|
|
14
|
+
end
|
|
15
|
+
end
|
|
16
|
+
"""
|
|
17
|
+
When I run "spec custom_example_group_spec.rb"
|
|
18
|
+
Then the stdout should include "1 example, 0 failures"
|
|
19
|
+
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
Feature: custom formatters
|
|
2
|
+
|
|
3
|
+
In order to format output/reporting to my particular needs
|
|
4
|
+
As an RSpec user
|
|
5
|
+
I want to create my own custom output formatters
|
|
6
|
+
|
|
7
|
+
Scenario: specdoc format
|
|
8
|
+
Given a file named "custom_formatter.rb" with:
|
|
9
|
+
"""
|
|
10
|
+
require 'spec/runner/formatter/base_formatter'
|
|
11
|
+
class CustomFormatter < Spec::Runner::Formatter::BaseFormatter
|
|
12
|
+
def initialize(options, output)
|
|
13
|
+
@output = output
|
|
14
|
+
end
|
|
15
|
+
def example_started(proxy)
|
|
16
|
+
@output << "example: " << proxy.description
|
|
17
|
+
end
|
|
18
|
+
end
|
|
19
|
+
"""
|
|
20
|
+
And a file named "simple_example_spec.rb" with:
|
|
21
|
+
"""
|
|
22
|
+
describe "my group" do
|
|
23
|
+
specify "my example" do
|
|
24
|
+
end
|
|
25
|
+
end
|
|
26
|
+
"""
|
|
27
|
+
|
|
28
|
+
When I run "spec simple_example_spec.rb --require custom_formatter.rb --format CustomFormatter"
|
|
29
|
+
Then the exit code should be 0
|
|
30
|
+
And the stdout should include "example: my example"
|