rspec 0.0.10 → 0.1.0
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/CHANGES +8 -0
- data/README +20 -0
- data/Rakefile.rb +122 -0
- data/lib/rspec.rb +9 -0
- data/lib/spec.rb +4 -29
- data/lib/spec/context.rb +61 -0
- data/lib/spec/{mocks/errors.rb → exceptions.rb} +5 -4
- data/lib/spec/expectations.rb +61 -50
- data/lib/spec/mock.rb +104 -0
- data/lib/spec/text_runner.rb +84 -0
- metadata +48 -452
- data/.autotest +0 -3
- data/.gitignore +0 -7
- data/History.txt +0 -1104
- data/MIT-LICENSE +0 -20
- data/Manifest.txt +0 -387
- data/README.txt +0 -36
- data/Rakefile +0 -88
- data/TODO +0 -1
- data/bin/autospec +0 -3
- data/bin/spec +0 -4
- data/bin/spec_translator +0 -8
- data/examples/pure/autogenerated_docstrings_example.rb +0 -19
- data/examples/pure/before_and_after_example.rb +0 -40
- data/examples/pure/behave_as_example.rb +0 -45
- data/examples/pure/custom_expectation_matchers.rb +0 -54
- data/examples/pure/custom_formatter.rb +0 -12
- data/examples/pure/dynamic_spec.rb +0 -9
- data/examples/pure/file_accessor.rb +0 -19
- data/examples/pure/file_accessor_spec.rb +0 -38
- data/examples/pure/greeter_spec.rb +0 -31
- data/examples/pure/helper_method_example.rb +0 -14
- data/examples/pure/io_processor.rb +0 -8
- data/examples/pure/io_processor_spec.rb +0 -21
- data/examples/pure/legacy_spec.rb +0 -11
- data/examples/pure/mocking_example.rb +0 -27
- data/examples/pure/multi_threaded_behaviour_runner.rb +0 -28
- data/examples/pure/nested_classes_example.rb +0 -36
- data/examples/pure/partial_mock_example.rb +0 -29
- data/examples/pure/pending_example.rb +0 -20
- data/examples/pure/predicate_example.rb +0 -27
- data/examples/pure/priority.txt +0 -1
- data/examples/pure/shared_example_group_example.rb +0 -81
- data/examples/pure/shared_stack_examples.rb +0 -38
- data/examples/pure/spec_helper.rb +0 -3
- data/examples/pure/stack.rb +0 -36
- data/examples/pure/stack_spec.rb +0 -63
- data/examples/pure/stack_spec_with_nested_example_groups.rb +0 -67
- data/examples/pure/stubbing_example.rb +0 -69
- data/examples/stories/adder.rb +0 -13
- data/examples/stories/addition +0 -34
- data/examples/stories/addition.rb +0 -9
- data/examples/stories/calculator.rb +0 -65
- data/examples/stories/game-of-life/.loadpath +0 -5
- data/examples/stories/game-of-life/README.txt +0 -21
- data/examples/stories/game-of-life/behaviour/everything.rb +0 -6
- data/examples/stories/game-of-life/behaviour/examples/examples.rb +0 -3
- data/examples/stories/game-of-life/behaviour/examples/game_behaviour.rb +0 -35
- data/examples/stories/game-of-life/behaviour/examples/grid_behaviour.rb +0 -66
- data/examples/stories/game-of-life/behaviour/stories/CellsWithLessThanTwoNeighboursDie.story +0 -21
- data/examples/stories/game-of-life/behaviour/stories/CellsWithMoreThanThreeNeighboursDie.story +0 -21
- data/examples/stories/game-of-life/behaviour/stories/EmptySpacesWithThreeNeighboursCreateACell.story +0 -42
- data/examples/stories/game-of-life/behaviour/stories/ICanCreateACell.story +0 -42
- data/examples/stories/game-of-life/behaviour/stories/ICanKillACell.story +0 -17
- data/examples/stories/game-of-life/behaviour/stories/TheGridWraps.story +0 -53
- data/examples/stories/game-of-life/behaviour/stories/create_a_cell.rb +0 -52
- data/examples/stories/game-of-life/behaviour/stories/helper.rb +0 -6
- data/examples/stories/game-of-life/behaviour/stories/kill_a_cell.rb +0 -26
- data/examples/stories/game-of-life/behaviour/stories/steps.rb +0 -5
- data/examples/stories/game-of-life/behaviour/stories/stories.rb +0 -3
- data/examples/stories/game-of-life/behaviour/stories/stories.txt +0 -22
- data/examples/stories/game-of-life/life.rb +0 -3
- data/examples/stories/game-of-life/life/game.rb +0 -23
- data/examples/stories/game-of-life/life/grid.rb +0 -43
- data/examples/stories/helper.rb +0 -9
- data/examples/stories/steps/addition_steps.rb +0 -18
- data/failing_examples/README.txt +0 -7
- data/failing_examples/diffing_spec.rb +0 -36
- data/failing_examples/failing_autogenerated_docstrings_example.rb +0 -19
- data/failing_examples/failure_in_setup.rb +0 -10
- data/failing_examples/failure_in_teardown.rb +0 -10
- data/failing_examples/mocking_example.rb +0 -40
- data/failing_examples/mocking_with_flexmock.rb +0 -26
- data/failing_examples/mocking_with_mocha.rb +0 -25
- data/failing_examples/mocking_with_rr.rb +0 -27
- data/failing_examples/partial_mock_example.rb +0 -20
- data/failing_examples/predicate_example.rb +0 -29
- data/failing_examples/raising_example.rb +0 -47
- data/failing_examples/spec_helper.rb +0 -3
- data/failing_examples/syntax_error_example.rb +0 -7
- data/failing_examples/team_spec.rb +0 -44
- data/failing_examples/timeout_behaviour.rb +0 -7
- data/init.rb +0 -9
- data/lib/autotest/discover.rb +0 -3
- data/lib/autotest/rspec.rb +0 -72
- data/lib/spec/adapters.rb +0 -1
- data/lib/spec/adapters/ruby_engine.rb +0 -26
- data/lib/spec/adapters/ruby_engine/mri.rb +0 -8
- data/lib/spec/adapters/ruby_engine/rubinius.rb +0 -8
- data/lib/spec/example.rb +0 -12
- data/lib/spec/example/configuration.rb +0 -158
- data/lib/spec/example/errors.rb +0 -9
- data/lib/spec/example/example_group.rb +0 -17
- data/lib/spec/example/example_group_factory.rb +0 -64
- data/lib/spec/example/example_group_methods.rb +0 -440
- data/lib/spec/example/example_matcher.rb +0 -44
- data/lib/spec/example/example_methods.rb +0 -112
- data/lib/spec/example/module_inclusion_warnings.rb +0 -38
- data/lib/spec/example/module_reopening_fix.rb +0 -21
- data/lib/spec/example/pending.rb +0 -18
- data/lib/spec/example/shared_example_group.rb +0 -58
- data/lib/spec/expectations/differs/default.rb +0 -66
- data/lib/spec/expectations/errors.rb +0 -12
- data/lib/spec/expectations/extensions.rb +0 -2
- data/lib/spec/expectations/extensions/object.rb +0 -63
- data/lib/spec/expectations/extensions/string_and_symbol.rb +0 -17
- data/lib/spec/expectations/handler.rb +0 -62
- data/lib/spec/extensions.rb +0 -4
- data/lib/spec/extensions/class.rb +0 -24
- data/lib/spec/extensions/main.rb +0 -102
- data/lib/spec/extensions/metaclass.rb +0 -7
- data/lib/spec/extensions/object.rb +0 -6
- data/lib/spec/interop/test.rb +0 -12
- data/lib/spec/interop/test/unit/autorunner.rb +0 -6
- data/lib/spec/interop/test/unit/testcase.rb +0 -61
- data/lib/spec/interop/test/unit/testresult.rb +0 -6
- data/lib/spec/interop/test/unit/testsuite_adapter.rb +0 -34
- data/lib/spec/interop/test/unit/ui/console/testrunner.rb +0 -61
- data/lib/spec/matchers.rb +0 -156
- data/lib/spec/matchers/be.rb +0 -224
- data/lib/spec/matchers/be_close.rb +0 -37
- data/lib/spec/matchers/change.rb +0 -148
- data/lib/spec/matchers/eql.rb +0 -43
- data/lib/spec/matchers/equal.rb +0 -43
- data/lib/spec/matchers/exist.rb +0 -17
- data/lib/spec/matchers/has.rb +0 -34
- data/lib/spec/matchers/have.rb +0 -149
- data/lib/spec/matchers/include.rb +0 -70
- data/lib/spec/matchers/match.rb +0 -41
- data/lib/spec/matchers/operator_matcher.rb +0 -73
- data/lib/spec/matchers/raise_error.rb +0 -132
- data/lib/spec/matchers/respond_to.rb +0 -45
- data/lib/spec/matchers/satisfy.rb +0 -47
- data/lib/spec/matchers/simple_matcher.rb +0 -132
- data/lib/spec/matchers/throw_symbol.rb +0 -74
- data/lib/spec/mocks.rb +0 -211
- data/lib/spec/mocks/argument_constraint_matchers.rb +0 -31
- data/lib/spec/mocks/argument_expectation.rb +0 -216
- data/lib/spec/mocks/error_generator.rb +0 -84
- data/lib/spec/mocks/extensions.rb +0 -1
- data/lib/spec/mocks/extensions/object.rb +0 -3
- data/lib/spec/mocks/framework.rb +0 -15
- data/lib/spec/mocks/message_expectation.rb +0 -290
- data/lib/spec/mocks/methods.rb +0 -39
- data/lib/spec/mocks/mock.rb +0 -56
- data/lib/spec/mocks/order_group.rb +0 -29
- data/lib/spec/mocks/proxy.rb +0 -184
- data/lib/spec/mocks/space.rb +0 -28
- data/lib/spec/mocks/spec_methods.rb +0 -38
- data/lib/spec/rake/spectask.rb +0 -227
- data/lib/spec/rake/verify_rcov.rb +0 -52
- data/lib/spec/runner.rb +0 -201
- data/lib/spec/runner/backtrace_tweaker.rb +0 -57
- data/lib/spec/runner/class_and_arguments_parser.rb +0 -16
- data/lib/spec/runner/command_line.rb +0 -28
- data/lib/spec/runner/drb_command_line.rb +0 -20
- data/lib/spec/runner/example_group_runner.rb +0 -59
- data/lib/spec/runner/formatter/base_formatter.rb +0 -77
- data/lib/spec/runner/formatter/base_text_formatter.rb +0 -130
- data/lib/spec/runner/formatter/failing_example_groups_formatter.rb +0 -27
- data/lib/spec/runner/formatter/failing_examples_formatter.rb +0 -20
- data/lib/spec/runner/formatter/html_formatter.rb +0 -337
- data/lib/spec/runner/formatter/nested_text_formatter.rb +0 -65
- data/lib/spec/runner/formatter/profile_formatter.rb +0 -51
- data/lib/spec/runner/formatter/progress_bar_formatter.rb +0 -34
- data/lib/spec/runner/formatter/snippet_extractor.rb +0 -52
- data/lib/spec/runner/formatter/specdoc_formatter.rb +0 -39
- data/lib/spec/runner/formatter/story/html_formatter.rb +0 -161
- data/lib/spec/runner/formatter/story/plain_text_formatter.rb +0 -188
- data/lib/spec/runner/formatter/text_mate_formatter.rb +0 -16
- data/lib/spec/runner/heckle_runner.rb +0 -72
- data/lib/spec/runner/heckle_runner_unsupported.rb +0 -10
- data/lib/spec/runner/option_parser.rb +0 -203
- data/lib/spec/runner/options.rb +0 -309
- data/lib/spec/runner/reporter.rb +0 -147
- data/lib/spec/runner/spec_parser.rb +0 -71
- data/lib/spec/story.rb +0 -10
- data/lib/spec/story/extensions.rb +0 -3
- data/lib/spec/story/extensions/main.rb +0 -86
- data/lib/spec/story/extensions/regexp.rb +0 -9
- data/lib/spec/story/extensions/string.rb +0 -9
- data/lib/spec/story/given_scenario.rb +0 -14
- data/lib/spec/story/runner.rb +0 -60
- data/lib/spec/story/runner/plain_text_story_runner.rb +0 -48
- data/lib/spec/story/runner/scenario_collector.rb +0 -18
- data/lib/spec/story/runner/scenario_runner.rb +0 -54
- data/lib/spec/story/runner/story_mediator.rb +0 -137
- data/lib/spec/story/runner/story_parser.rb +0 -247
- data/lib/spec/story/runner/story_runner.rb +0 -70
- data/lib/spec/story/scenario.rb +0 -14
- data/lib/spec/story/step.rb +0 -70
- data/lib/spec/story/step_group.rb +0 -89
- data/lib/spec/story/step_mother.rb +0 -37
- data/lib/spec/story/story.rb +0 -39
- data/lib/spec/story/world.rb +0 -128
- data/lib/spec/translator.rb +0 -114
- data/lib/spec/version.rb +0 -13
- data/plugins/mock_frameworks/flexmock.rb +0 -23
- data/plugins/mock_frameworks/mocha.rb +0 -19
- data/plugins/mock_frameworks/rr.rb +0 -21
- data/plugins/mock_frameworks/rspec.rb +0 -20
- data/rake_tasks/examples.rake +0 -7
- data/rake_tasks/examples_with_rcov.rake +0 -9
- data/rake_tasks/failing_examples_with_html.rake +0 -9
- data/rake_tasks/verify_rcov.rake +0 -7
- data/spec/README.jruby +0 -15
- data/spec/autotest/discover_spec.rb +0 -19
- data/spec/autotest/rspec_spec.rb +0 -206
- data/spec/autotest_helper.rb +0 -6
- data/spec/autotest_matchers.rb +0 -47
- data/spec/rspec_suite.rb +0 -7
- data/spec/ruby_forker.rb +0 -13
- data/spec/spec.opts +0 -6
- data/spec/spec/adapters/ruby_engine_spec.rb +0 -16
- data/spec/spec/example/configuration_spec.rb +0 -282
- data/spec/spec/example/example_group/described_module_spec.rb +0 -20
- data/spec/spec/example/example_group/warning_messages_spec.rb +0 -76
- data/spec/spec/example/example_group_class_definition_spec.rb +0 -48
- data/spec/spec/example/example_group_factory_spec.rb +0 -144
- data/spec/spec/example/example_group_methods_spec.rb +0 -572
- data/spec/spec/example/example_group_spec.rb +0 -723
- data/spec/spec/example/example_matcher_spec.rb +0 -96
- data/spec/spec/example/example_methods_spec.rb +0 -126
- data/spec/spec/example/example_runner_spec.rb +0 -194
- data/spec/spec/example/example_spec.rb +0 -53
- data/spec/spec/example/nested_example_group_spec.rb +0 -71
- data/spec/spec/example/pending_module_spec.rb +0 -42
- data/spec/spec/example/predicate_matcher_spec.rb +0 -21
- data/spec/spec/example/shared_example_group_spec.rb +0 -265
- data/spec/spec/example/subclassing_example_group_spec.rb +0 -25
- data/spec/spec/expectations/differs/default_spec.rb +0 -127
- data/spec/spec/expectations/extensions/object_spec.rb +0 -107
- data/spec/spec/expectations/fail_with_spec.rb +0 -71
- data/spec/spec/extensions/main_spec.rb +0 -76
- data/spec/spec/interop/test/unit/resources/spec_that_fails.rb +0 -10
- data/spec/spec/interop/test/unit/resources/spec_that_passes.rb +0 -10
- data/spec/spec/interop/test/unit/resources/spec_with_errors.rb +0 -10
- data/spec/spec/interop/test/unit/resources/test_case_that_fails.rb +0 -10
- data/spec/spec/interop/test/unit/resources/test_case_that_passes.rb +0 -10
- data/spec/spec/interop/test/unit/resources/test_case_with_errors.rb +0 -10
- data/spec/spec/interop/test/unit/resources/testsuite_adapter_spec_with_test_unit.rb +0 -38
- data/spec/spec/interop/test/unit/spec_spec.rb +0 -45
- data/spec/spec/interop/test/unit/test_unit_spec_helper.rb +0 -14
- data/spec/spec/interop/test/unit/testcase_spec.rb +0 -45
- data/spec/spec/interop/test/unit/testsuite_adapter_spec.rb +0 -9
- data/spec/spec/matchers/be_close_spec.rb +0 -39
- data/spec/spec/matchers/be_spec.rb +0 -248
- data/spec/spec/matchers/change_spec.rb +0 -317
- data/spec/spec/matchers/description_generation_spec.rb +0 -153
- data/spec/spec/matchers/eql_spec.rb +0 -28
- data/spec/spec/matchers/equal_spec.rb +0 -28
- data/spec/spec/matchers/exist_spec.rb +0 -57
- data/spec/spec/matchers/handler_spec.rb +0 -150
- data/spec/spec/matchers/has_spec.rb +0 -53
- data/spec/spec/matchers/have_spec.rb +0 -293
- data/spec/spec/matchers/include_spec.rb +0 -45
- data/spec/spec/matchers/match_spec.rb +0 -37
- data/spec/spec/matchers/matcher_methods_spec.rb +0 -78
- data/spec/spec/matchers/mock_constraint_matchers_spec.rb +0 -24
- data/spec/spec/matchers/operator_matcher_spec.rb +0 -168
- data/spec/spec/matchers/raise_error_spec.rb +0 -315
- data/spec/spec/matchers/respond_to_spec.rb +0 -54
- data/spec/spec/matchers/satisfy_spec.rb +0 -36
- data/spec/spec/matchers/simple_matcher_spec.rb +0 -93
- data/spec/spec/matchers/throw_symbol_spec.rb +0 -54
- data/spec/spec/mocks/any_number_of_times_spec.rb +0 -29
- data/spec/spec/mocks/argument_expectation_spec.rb +0 -23
- data/spec/spec/mocks/at_least_spec.rb +0 -97
- data/spec/spec/mocks/at_most_spec.rb +0 -93
- data/spec/spec/mocks/bug_report_10260_spec.rb +0 -8
- data/spec/spec/mocks/bug_report_10263_spec.rb +0 -24
- data/spec/spec/mocks/bug_report_11545_spec.rb +0 -33
- data/spec/spec/mocks/bug_report_15719_spec.rb +0 -30
- data/spec/spec/mocks/bug_report_7611_spec.rb +0 -19
- data/spec/spec/mocks/bug_report_7805_spec.rb +0 -22
- data/spec/spec/mocks/bug_report_8165_spec.rb +0 -31
- data/spec/spec/mocks/bug_report_8302_spec.rb +0 -26
- data/spec/spec/mocks/failing_mock_argument_constraints_spec.rb +0 -130
- data/spec/spec/mocks/hash_including_matcher_spec.rb +0 -32
- data/spec/spec/mocks/mock_ordering_spec.rb +0 -84
- data/spec/spec/mocks/mock_space_spec.rb +0 -54
- data/spec/spec/mocks/mock_spec.rb +0 -494
- data/spec/spec/mocks/multiple_return_value_spec.rb +0 -113
- data/spec/spec/mocks/null_object_mock_spec.rb +0 -40
- data/spec/spec/mocks/once_counts_spec.rb +0 -53
- data/spec/spec/mocks/options_hash_spec.rb +0 -45
- data/spec/spec/mocks/partial_mock_spec.rb +0 -142
- data/spec/spec/mocks/partial_mock_using_mocks_directly_spec.rb +0 -66
- data/spec/spec/mocks/passing_mock_argument_constraints_spec.rb +0 -175
- data/spec/spec/mocks/precise_counts_spec.rb +0 -52
- data/spec/spec/mocks/record_messages_spec.rb +0 -26
- data/spec/spec/mocks/stub_spec.rb +0 -181
- data/spec/spec/mocks/twice_counts_spec.rb +0 -67
- data/spec/spec/package/bin_spec_spec.rb +0 -14
- data/spec/spec/runner/class_and_argument_parser_spec.rb +0 -23
- data/spec/spec/runner/command_line_spec.rb +0 -147
- data/spec/spec/runner/drb_command_line_spec.rb +0 -92
- data/spec/spec/runner/empty_file.txt +0 -0
- data/spec/spec/runner/examples.txt +0 -2
- data/spec/spec/runner/execution_context_spec.rb +0 -37
- data/spec/spec/runner/failed.txt +0 -3
- data/spec/spec/runner/formatter/failing_example_groups_formatter_spec.rb +0 -45
- data/spec/spec/runner/formatter/failing_examples_formatter_spec.rb +0 -33
- data/spec/spec/runner/formatter/html_formatted-1.8.4.html +0 -365
- data/spec/spec/runner/formatter/html_formatted-1.8.5-jruby.html +0 -387
- data/spec/spec/runner/formatter/html_formatted-1.8.5.html +0 -371
- data/spec/spec/runner/formatter/html_formatted-1.8.6-jruby.html +0 -381
- data/spec/spec/runner/formatter/html_formatted-1.8.6.html +0 -370
- data/spec/spec/runner/formatter/html_formatter_spec.rb +0 -63
- data/spec/spec/runner/formatter/nested_text_formatter_spec.rb +0 -333
- data/spec/spec/runner/formatter/profile_formatter_spec.rb +0 -65
- data/spec/spec/runner/formatter/progress_bar_formatter_spec.rb +0 -137
- data/spec/spec/runner/formatter/snippet_extractor_spec.rb +0 -18
- data/spec/spec/runner/formatter/spec_mate_formatter_spec.rb +0 -103
- data/spec/spec/runner/formatter/specdoc_formatter_spec.rb +0 -158
- data/spec/spec/runner/formatter/story/html_formatter_spec.rb +0 -87
- data/spec/spec/runner/formatter/story/plain_text_formatter_spec.rb +0 -548
- data/spec/spec/runner/formatter/text_mate_formatted-1.8.4.html +0 -365
- data/spec/spec/runner/formatter/text_mate_formatted-1.8.6.html +0 -370
- data/spec/spec/runner/heckle_runner_spec.rb +0 -78
- data/spec/spec/runner/heckler_spec.rb +0 -13
- data/spec/spec/runner/noisy_backtrace_tweaker_spec.rb +0 -45
- data/spec/spec/runner/option_parser_spec.rb +0 -394
- data/spec/spec/runner/options_spec.rb +0 -450
- data/spec/spec/runner/output_one_time_fixture.rb +0 -7
- data/spec/spec/runner/output_one_time_fixture_runner.rb +0 -8
- data/spec/spec/runner/output_one_time_spec.rb +0 -16
- data/spec/spec/runner/quiet_backtrace_tweaker_spec.rb +0 -56
- data/spec/spec/runner/reporter_spec.rb +0 -192
- 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 +0 -1
- data/spec/spec/runner/spec.opts +0 -2
- data/spec/spec/runner/spec_drb.opts +0 -1
- data/spec/spec/runner/spec_parser/spec_parser_fixture.rb +0 -70
- data/spec/spec/runner/spec_parser_spec.rb +0 -85
- data/spec/spec/runner/spec_spaced.opts +0 -2
- data/spec/spec/runner_spec.rb +0 -11
- data/spec/spec/spec_classes.rb +0 -133
- data/spec/spec/story/builders.rb +0 -46
- data/spec/spec/story/extensions/main_spec.rb +0 -161
- data/spec/spec/story/extensions_spec.rb +0 -14
- data/spec/spec/story/given_scenario_spec.rb +0 -27
- data/spec/spec/story/runner/plain_text_story_runner_spec.rb +0 -93
- data/spec/spec/story/runner/scenario_collector_spec.rb +0 -27
- data/spec/spec/story/runner/scenario_runner_spec.rb +0 -214
- data/spec/spec/story/runner/story_mediator_spec.rb +0 -143
- data/spec/spec/story/runner/story_parser_spec.rb +0 -401
- data/spec/spec/story/runner/story_runner_spec.rb +0 -294
- data/spec/spec/story/runner_spec.rb +0 -93
- data/spec/spec/story/scenario_spec.rb +0 -20
- data/spec/spec/story/step_group_spec.rb +0 -157
- data/spec/spec/story/step_mother_spec.rb +0 -72
- data/spec/spec/story/step_spec.rb +0 -250
- data/spec/spec/story/story_helper.rb +0 -2
- data/spec/spec/story/story_spec.rb +0 -86
- data/spec/spec/story/world_spec.rb +0 -423
- data/spec/spec/translator_spec.rb +0 -265
- data/spec/spec_helper.rb +0 -103
- data/stories/all.rb +0 -5
- data/stories/example_groups/autogenerated_docstrings +0 -45
- data/stories/example_groups/example_group_with_should_methods +0 -17
- data/stories/example_groups/nested_groups +0 -17
- data/stories/example_groups/output +0 -25
- data/stories/example_groups/stories.rb +0 -7
- data/stories/helper.rb +0 -6
- data/stories/interop/examples_and_tests_together +0 -30
- data/stories/interop/stories.rb +0 -7
- data/stories/interop/test_case_with_should_methods +0 -17
- data/stories/mock_framework_integration/stories.rb +0 -7
- data/stories/mock_framework_integration/use_flexmock.story +0 -9
- data/stories/pending_stories/README +0 -3
- data/stories/resources/helpers/cmdline.rb +0 -9
- data/stories/resources/helpers/story_helper.rb +0 -16
- data/stories/resources/matchers/smart_match.rb +0 -37
- data/stories/resources/spec/example_group_with_should_methods.rb +0 -12
- data/stories/resources/spec/simple_spec.rb +0 -8
- data/stories/resources/spec/spec_with_flexmock.rb +0 -18
- data/stories/resources/steps/running_rspec.rb +0 -50
- data/stories/resources/stories/failing_story.rb +0 -15
- data/stories/resources/test/spec_and_test_together.rb +0 -57
- data/stories/resources/test/test_case_with_should_methods.rb +0 -30
- data/stories/stories/multiline_steps.story +0 -23
- data/stories/stories/steps/multiline_steps.rb +0 -13
- data/stories/stories/stories.rb +0 -6
@@ -1,17 +0,0 @@
|
|
1
|
-
module Spec
|
2
|
-
module Expectations
|
3
|
-
module StringHelpers
|
4
|
-
def starts_with?(prefix)
|
5
|
-
to_s[0..(prefix.to_s.length - 1)] == prefix.to_s
|
6
|
-
end
|
7
|
-
end
|
8
|
-
end
|
9
|
-
end
|
10
|
-
|
11
|
-
class String
|
12
|
-
include Spec::Expectations::StringHelpers
|
13
|
-
end
|
14
|
-
|
15
|
-
class Symbol
|
16
|
-
include Spec::Expectations::StringHelpers
|
17
|
-
end
|
@@ -1,62 +0,0 @@
|
|
1
|
-
module Spec
|
2
|
-
module Expectations
|
3
|
-
class InvalidMatcherError < ArgumentError; end
|
4
|
-
|
5
|
-
module MatcherHandlerHelper
|
6
|
-
def describe_matcher(matcher)
|
7
|
-
matcher.respond_to?(:description) ? matcher.description : "[#{matcher.class.name} does not provide a description]"
|
8
|
-
end
|
9
|
-
end
|
10
|
-
|
11
|
-
class ExpectationMatcherHandler
|
12
|
-
class << self
|
13
|
-
include MatcherHandlerHelper
|
14
|
-
def handle_matcher(actual, matcher, &block)
|
15
|
-
if :use_operator_matcher == matcher
|
16
|
-
return Spec::Matchers::PositiveOperatorMatcher.new(actual)
|
17
|
-
end
|
18
|
-
|
19
|
-
unless matcher.respond_to?(:matches?)
|
20
|
-
raise InvalidMatcherError, "Expected a matcher, got #{matcher.inspect}."
|
21
|
-
end
|
22
|
-
|
23
|
-
match = matcher.matches?(actual, &block)
|
24
|
-
::Spec::Matchers.generated_description = "should #{describe_matcher(matcher)}"
|
25
|
-
Spec::Expectations.fail_with(matcher.failure_message) unless match
|
26
|
-
match
|
27
|
-
end
|
28
|
-
end
|
29
|
-
end
|
30
|
-
|
31
|
-
class NegativeExpectationMatcherHandler
|
32
|
-
class << self
|
33
|
-
include MatcherHandlerHelper
|
34
|
-
def handle_matcher(actual, matcher, &block)
|
35
|
-
if :use_operator_matcher == matcher
|
36
|
-
return Spec::Matchers::NegativeOperatorMatcher.new(actual)
|
37
|
-
end
|
38
|
-
|
39
|
-
unless matcher.respond_to?(:matches?)
|
40
|
-
raise InvalidMatcherError, "Expected a matcher, got #{matcher.inspect}."
|
41
|
-
end
|
42
|
-
|
43
|
-
unless matcher.respond_to?(:negative_failure_message)
|
44
|
-
Spec::Expectations.fail_with(
|
45
|
-
<<-EOF
|
46
|
-
Matcher does not support should_not.
|
47
|
-
See Spec::Matchers for more information
|
48
|
-
about matchers.
|
49
|
-
EOF
|
50
|
-
)
|
51
|
-
end
|
52
|
-
match = matcher.matches?(actual, &block)
|
53
|
-
::Spec::Matchers.generated_description = "should not #{describe_matcher(matcher)}"
|
54
|
-
Spec::Expectations.fail_with(matcher.negative_failure_message) if match
|
55
|
-
match
|
56
|
-
end
|
57
|
-
end
|
58
|
-
end
|
59
|
-
|
60
|
-
end
|
61
|
-
end
|
62
|
-
|
data/lib/spec/extensions.rb
DELETED
@@ -1,24 +0,0 @@
|
|
1
|
-
class Class
|
2
|
-
# Creates a new subclass of self, with a name "under" our own name.
|
3
|
-
# Example:
|
4
|
-
#
|
5
|
-
# x = Foo::Bar.subclass('Zap'){}
|
6
|
-
# x.name # => Foo::Bar::Zap_1
|
7
|
-
# x.superclass.name # => Foo::Bar
|
8
|
-
def subclass(base_name, &body)
|
9
|
-
klass = Class.new(self)
|
10
|
-
class_name = "#{base_name}_#{class_count!}"
|
11
|
-
instance_eval do
|
12
|
-
const_set(class_name, klass)
|
13
|
-
end
|
14
|
-
klass.instance_eval(&body)
|
15
|
-
klass
|
16
|
-
end
|
17
|
-
|
18
|
-
private
|
19
|
-
def class_count!
|
20
|
-
@class_count ||= 0
|
21
|
-
@class_count += 1
|
22
|
-
@class_count
|
23
|
-
end
|
24
|
-
end
|
data/lib/spec/extensions/main.rb
DELETED
@@ -1,102 +0,0 @@
|
|
1
|
-
module Spec
|
2
|
-
module Extensions
|
3
|
-
module Main
|
4
|
-
# Creates and returns a class that includes the ExampleGroupMethods
|
5
|
-
# module. Which ExampleGroup type is created depends on the directory of the file
|
6
|
-
# calling this method. For example, Spec::Rails will use different
|
7
|
-
# classes for specs living in <tt>spec/models</tt>,
|
8
|
-
# <tt>spec/helpers</tt>, <tt>spec/views</tt> and
|
9
|
-
# <tt>spec/controllers</tt>.
|
10
|
-
#
|
11
|
-
# It is also possible to override autodiscovery of the example group
|
12
|
-
# type with an options Hash as the last argument:
|
13
|
-
#
|
14
|
-
# describe "name", :type => :something_special do ...
|
15
|
-
#
|
16
|
-
# The reason for using different behaviour classes is to have different
|
17
|
-
# matcher methods available from within the <tt>describe</tt> block.
|
18
|
-
#
|
19
|
-
# See Spec::Example::ExampleFactory#register for details about how to
|
20
|
-
# register special implementations.
|
21
|
-
#
|
22
|
-
def describe(*args, &block)
|
23
|
-
raise ArgumentError if args.empty?
|
24
|
-
raise ArgumentError unless block
|
25
|
-
args << {} unless Hash === args.last
|
26
|
-
args.last[:spec_path] = caller(0)[1]
|
27
|
-
Spec::Example::ExampleGroupFactory.create_example_group(*args, &block)
|
28
|
-
end
|
29
|
-
alias :context :describe
|
30
|
-
|
31
|
-
# Creates an example group that can be shared by other example groups
|
32
|
-
#
|
33
|
-
# == Examples
|
34
|
-
#
|
35
|
-
# share_examples_for "All Editions" do
|
36
|
-
# it "all editions behaviour" ...
|
37
|
-
# end
|
38
|
-
#
|
39
|
-
# describe SmallEdition do
|
40
|
-
# it_should_behave_like "All Editions"
|
41
|
-
#
|
42
|
-
# it "should do small edition stuff" do
|
43
|
-
# ...
|
44
|
-
# end
|
45
|
-
# end
|
46
|
-
def share_examples_for(name, &block)
|
47
|
-
describe(name, :shared => true, &block)
|
48
|
-
end
|
49
|
-
|
50
|
-
alias :shared_examples_for :share_examples_for
|
51
|
-
|
52
|
-
# Creates a Shared Example Group and assigns it to a constant
|
53
|
-
#
|
54
|
-
# share_as :AllEditions do
|
55
|
-
# it "should do all editions stuff" ...
|
56
|
-
# end
|
57
|
-
#
|
58
|
-
# describe SmallEdition do
|
59
|
-
# it_should_behave_like AllEditions
|
60
|
-
#
|
61
|
-
# it "should do small edition stuff" do
|
62
|
-
# ...
|
63
|
-
# end
|
64
|
-
# end
|
65
|
-
#
|
66
|
-
# And, for those of you who prefer to use something more like Ruby, you
|
67
|
-
# can just include the module directly
|
68
|
-
#
|
69
|
-
# describe SmallEdition do
|
70
|
-
# include AllEditions
|
71
|
-
#
|
72
|
-
# it "should do small edition stuff" do
|
73
|
-
# ...
|
74
|
-
# end
|
75
|
-
# end
|
76
|
-
def share_as(name, &block)
|
77
|
-
begin
|
78
|
-
Object.const_set(name, share_examples_for(name, &block))
|
79
|
-
rescue NameError => e
|
80
|
-
raise NameError.new(e.message + "\nThe first argument to share_as must be a legal name for a constant\n")
|
81
|
-
end
|
82
|
-
end
|
83
|
-
|
84
|
-
private
|
85
|
-
|
86
|
-
def rspec_options
|
87
|
-
$rspec_options ||= begin; \
|
88
|
-
parser = ::Spec::Runner::OptionParser.new(STDERR, STDOUT); \
|
89
|
-
parser.order!(ARGV); \
|
90
|
-
$rspec_options = parser.options; \
|
91
|
-
end
|
92
|
-
$rspec_options
|
93
|
-
end
|
94
|
-
|
95
|
-
def init_rspec_options(options)
|
96
|
-
$rspec_options = options if $rspec_options.nil?
|
97
|
-
end
|
98
|
-
end
|
99
|
-
end
|
100
|
-
end
|
101
|
-
|
102
|
-
include Spec::Extensions::Main
|
data/lib/spec/interop/test.rb
DELETED
@@ -1,12 +0,0 @@
|
|
1
|
-
require 'test/unit'
|
2
|
-
require 'test/unit/testresult'
|
3
|
-
|
4
|
-
require 'spec/interop/test/unit/testcase'
|
5
|
-
require 'spec/interop/test/unit/testsuite_adapter'
|
6
|
-
require 'spec/interop/test/unit/autorunner'
|
7
|
-
require 'spec/interop/test/unit/testresult'
|
8
|
-
require 'spec/interop/test/unit/ui/console/testrunner'
|
9
|
-
|
10
|
-
Spec::Example::ExampleGroupFactory.default(Test::Unit::TestCase)
|
11
|
-
|
12
|
-
Test::Unit.run = true
|
@@ -1,61 +0,0 @@
|
|
1
|
-
require 'test/unit/testcase'
|
2
|
-
|
3
|
-
module Test
|
4
|
-
module Unit
|
5
|
-
# This extension of the standard Test::Unit::TestCase makes RSpec
|
6
|
-
# available from within, so that you can do things like:
|
7
|
-
#
|
8
|
-
# require 'test/unit'
|
9
|
-
# require 'spec'
|
10
|
-
#
|
11
|
-
# class MyTest < Test::Unit::TestCase
|
12
|
-
# it "should work with Test::Unit assertions" do
|
13
|
-
# assert_equal 4, 2+1
|
14
|
-
# end
|
15
|
-
#
|
16
|
-
# def test_should_work_with_rspec_expectations
|
17
|
-
# (3+1).should == 5
|
18
|
-
# end
|
19
|
-
# end
|
20
|
-
#
|
21
|
-
# See also Spec::Example::ExampleGroup
|
22
|
-
class TestCase
|
23
|
-
extend Spec::Example::ExampleGroupMethods
|
24
|
-
include Spec::Example::ExampleMethods
|
25
|
-
|
26
|
-
before(:each) {setup}
|
27
|
-
after(:each) {teardown}
|
28
|
-
|
29
|
-
class << self
|
30
|
-
def suite
|
31
|
-
Test::Unit::TestSuiteAdapter.new(self)
|
32
|
-
end
|
33
|
-
|
34
|
-
def example_method?(method_name)
|
35
|
-
should_method?(method_name) || test_method?(method_name)
|
36
|
-
end
|
37
|
-
|
38
|
-
def test_method?(method_name)
|
39
|
-
method_name =~ /^test[_A-Z]./ && (
|
40
|
-
instance_method(method_name).arity == 0 ||
|
41
|
-
instance_method(method_name).arity == -1
|
42
|
-
)
|
43
|
-
end
|
44
|
-
end
|
45
|
-
|
46
|
-
def initialize(defined_description, &implementation)
|
47
|
-
@_defined_description = defined_description
|
48
|
-
@_implementation = implementation
|
49
|
-
|
50
|
-
@_result = ::Test::Unit::TestResult.new
|
51
|
-
# @method_name is important to set here because it "complies" with Test::Unit's interface.
|
52
|
-
# Some Test::Unit extensions depend on @method_name being present.
|
53
|
-
@method_name = @_defined_description
|
54
|
-
end
|
55
|
-
|
56
|
-
def run(ignore_this_argument=nil)
|
57
|
-
super()
|
58
|
-
end
|
59
|
-
end
|
60
|
-
end
|
61
|
-
end
|
@@ -1,34 +0,0 @@
|
|
1
|
-
module Test
|
2
|
-
module Unit
|
3
|
-
class TestSuiteAdapter < TestSuite
|
4
|
-
attr_reader :example_group, :examples
|
5
|
-
alias_method :tests, :examples
|
6
|
-
def initialize(example_group)
|
7
|
-
@example_group = example_group
|
8
|
-
@examples = example_group.examples
|
9
|
-
end
|
10
|
-
|
11
|
-
def name
|
12
|
-
example_group.description
|
13
|
-
end
|
14
|
-
|
15
|
-
def run(*args)
|
16
|
-
return true unless args.empty?
|
17
|
-
example_group.run
|
18
|
-
end
|
19
|
-
|
20
|
-
def size
|
21
|
-
example_group.number_of_examples
|
22
|
-
end
|
23
|
-
|
24
|
-
def delete(example)
|
25
|
-
examples.delete example
|
26
|
-
end
|
27
|
-
|
28
|
-
def empty?
|
29
|
-
examples.empty?
|
30
|
-
end
|
31
|
-
end
|
32
|
-
end
|
33
|
-
end
|
34
|
-
|
@@ -1,61 +0,0 @@
|
|
1
|
-
require 'test/unit/ui/console/testrunner'
|
2
|
-
|
3
|
-
module Test
|
4
|
-
module Unit
|
5
|
-
module UI
|
6
|
-
module Console
|
7
|
-
class TestRunner
|
8
|
-
|
9
|
-
alias_method :started_without_rspec, :started
|
10
|
-
def started_with_rspec(result)
|
11
|
-
@result = result
|
12
|
-
@need_to_output_started = true
|
13
|
-
end
|
14
|
-
alias_method :started, :started_with_rspec
|
15
|
-
|
16
|
-
alias_method :test_started_without_rspec, :test_started
|
17
|
-
def test_started_with_rspec(name)
|
18
|
-
if @need_to_output_started
|
19
|
-
if @rspec_io
|
20
|
-
@rspec_io.rewind
|
21
|
-
output(@rspec_io.read)
|
22
|
-
end
|
23
|
-
output("Started")
|
24
|
-
@need_to_output_started = false
|
25
|
-
end
|
26
|
-
test_started_without_rspec(name)
|
27
|
-
end
|
28
|
-
alias_method :test_started, :test_started_with_rspec
|
29
|
-
|
30
|
-
alias_method :test_finished_without_rspec, :test_finished
|
31
|
-
def test_finished_with_rspec(name)
|
32
|
-
test_finished_without_rspec(name)
|
33
|
-
@ran_test = true
|
34
|
-
end
|
35
|
-
alias_method :test_finished, :test_finished_with_rspec
|
36
|
-
|
37
|
-
alias_method :finished_without_rspec, :finished
|
38
|
-
def finished_with_rspec(elapsed_time)
|
39
|
-
@ran_test ||= false
|
40
|
-
if @ran_test
|
41
|
-
finished_without_rspec(elapsed_time)
|
42
|
-
end
|
43
|
-
end
|
44
|
-
alias_method :finished, :finished_with_rspec
|
45
|
-
|
46
|
-
alias_method :setup_mediator_without_rspec, :setup_mediator
|
47
|
-
def setup_mediator_with_rspec
|
48
|
-
orig_io = @io
|
49
|
-
@io = StringIO.new
|
50
|
-
setup_mediator_without_rspec
|
51
|
-
ensure
|
52
|
-
@rspec_io = @io
|
53
|
-
@io = orig_io
|
54
|
-
end
|
55
|
-
alias_method :setup_mediator, :setup_mediator_with_rspec
|
56
|
-
|
57
|
-
end
|
58
|
-
end
|
59
|
-
end
|
60
|
-
end
|
61
|
-
end
|
data/lib/spec/matchers.rb
DELETED
@@ -1,156 +0,0 @@
|
|
1
|
-
require 'spec/matchers/simple_matcher'
|
2
|
-
require 'spec/matchers/be'
|
3
|
-
require 'spec/matchers/be_close'
|
4
|
-
require 'spec/matchers/change'
|
5
|
-
require 'spec/matchers/eql'
|
6
|
-
require 'spec/matchers/equal'
|
7
|
-
require 'spec/matchers/exist'
|
8
|
-
require 'spec/matchers/has'
|
9
|
-
require 'spec/matchers/have'
|
10
|
-
require 'spec/matchers/include'
|
11
|
-
require 'spec/matchers/match'
|
12
|
-
require 'spec/matchers/raise_error'
|
13
|
-
require 'spec/matchers/respond_to'
|
14
|
-
require 'spec/matchers/satisfy'
|
15
|
-
require 'spec/matchers/throw_symbol'
|
16
|
-
require 'spec/matchers/operator_matcher'
|
17
|
-
|
18
|
-
module Spec
|
19
|
-
|
20
|
-
# RSpec ships with a number of useful Expression Matchers. An Expression Matcher
|
21
|
-
# is any object that responds to the following methods:
|
22
|
-
#
|
23
|
-
# matches?(actual)
|
24
|
-
# failure_message
|
25
|
-
# negative_failure_message #optional
|
26
|
-
# description #optional
|
27
|
-
#
|
28
|
-
# See Spec::Expectations to learn how to use these as Expectation Matchers.
|
29
|
-
# See Spec::Mocks to learn how to use them as Mock Argument Constraints.
|
30
|
-
#
|
31
|
-
# == Predicates
|
32
|
-
#
|
33
|
-
# In addition to those Expression Matchers that are defined explicitly, RSpec will
|
34
|
-
# create custom Matchers on the fly for any arbitrary predicate, giving your specs
|
35
|
-
# a much more natural language feel.
|
36
|
-
#
|
37
|
-
# A Ruby predicate is a method that ends with a "?" and returns true or false.
|
38
|
-
# Common examples are +empty?+, +nil?+, and +instance_of?+.
|
39
|
-
#
|
40
|
-
# All you need to do is write +should be_+ followed by the predicate without
|
41
|
-
# the question mark, and RSpec will figure it out from there. For example:
|
42
|
-
#
|
43
|
-
# [].should be_empty => [].empty? #passes
|
44
|
-
# [].should_not be_empty => [].empty? #fails
|
45
|
-
#
|
46
|
-
# In addtion to prefixing the predicate matchers with "be_", you can also use "be_a_"
|
47
|
-
# and "be_an_", making your specs read much more naturally:
|
48
|
-
#
|
49
|
-
# "a string".should be_an_instance_of(String) =>"a string".instance_of?(String) #passes
|
50
|
-
#
|
51
|
-
# 3.should be_a_kind_of(Fixnum) => 3.kind_of?(Numeric) #passes
|
52
|
-
# 3.should be_a_kind_of(Numeric) => 3.kind_of?(Numeric) #passes
|
53
|
-
# 3.should be_an_instance_of(Fixnum) => 3.instance_of?(Fixnum) #passes
|
54
|
-
# 3.should_not be_instance_of(Numeric) => 3.instance_of?(Numeric) #fails
|
55
|
-
#
|
56
|
-
# RSpec will also create custom matchers for predicates like +has_key?+. To
|
57
|
-
# use this feature, just state that the object should have_key(:key) and RSpec will
|
58
|
-
# call has_key?(:key) on the target. For example:
|
59
|
-
#
|
60
|
-
# {:a => "A"}.should have_key(:a) => {:a => "A"}.has_key?(:a) #passes
|
61
|
-
# {:a => "A"}.should have_key(:b) => {:a => "A"}.has_key?(:b) #fails
|
62
|
-
#
|
63
|
-
# You can use this feature to invoke any predicate that begins with "has_", whether it is
|
64
|
-
# part of the Ruby libraries (like +Hash#has_key?+) or a method you wrote on your own class.
|
65
|
-
#
|
66
|
-
# == Custom Expectation Matchers
|
67
|
-
#
|
68
|
-
# When you find that none of the stock Expectation Matchers provide a natural
|
69
|
-
# feeling expectation, you can very easily write your own.
|
70
|
-
#
|
71
|
-
# For example, imagine that you are writing a game in which players can
|
72
|
-
# be in various zones on a virtual board. To specify that bob should
|
73
|
-
# be in zone 4, you could say:
|
74
|
-
#
|
75
|
-
# bob.current_zone.should eql(Zone.new("4"))
|
76
|
-
#
|
77
|
-
# But you might find it more expressive to say:
|
78
|
-
#
|
79
|
-
# bob.should be_in_zone("4")
|
80
|
-
#
|
81
|
-
# and/or
|
82
|
-
#
|
83
|
-
# bob.should_not be_in_zone("3")
|
84
|
-
#
|
85
|
-
# To do this, you would need to write a class like this:
|
86
|
-
#
|
87
|
-
# class BeInZone
|
88
|
-
# def initialize(expected)
|
89
|
-
# @expected = expected
|
90
|
-
# end
|
91
|
-
# def matches?(target)
|
92
|
-
# @target = target
|
93
|
-
# @target.current_zone.eql?(Zone.new(@expected))
|
94
|
-
# end
|
95
|
-
# def failure_message
|
96
|
-
# "expected #{@target.inspect} to be in Zone #{@expected}"
|
97
|
-
# end
|
98
|
-
# def negative_failure_message
|
99
|
-
# "expected #{@target.inspect} not to be in Zone #{@expected}"
|
100
|
-
# end
|
101
|
-
# end
|
102
|
-
#
|
103
|
-
# ... and a method like this:
|
104
|
-
#
|
105
|
-
# def be_in_zone(expected)
|
106
|
-
# BeInZone.new(expected)
|
107
|
-
# end
|
108
|
-
#
|
109
|
-
# And then expose the method to your specs. This is normally done
|
110
|
-
# by including the method and the class in a module, which is then
|
111
|
-
# included in your spec:
|
112
|
-
#
|
113
|
-
# module CustomGameMatchers
|
114
|
-
# class BeInZone
|
115
|
-
# ...
|
116
|
-
# end
|
117
|
-
#
|
118
|
-
# def be_in_zone(expected)
|
119
|
-
# ...
|
120
|
-
# end
|
121
|
-
# end
|
122
|
-
#
|
123
|
-
# describe "Player behaviour" do
|
124
|
-
# include CustomGameMatchers
|
125
|
-
# ...
|
126
|
-
# end
|
127
|
-
#
|
128
|
-
# or you can include in globally in a spec_helper.rb file <tt>require</tt>d
|
129
|
-
# from your spec file(s):
|
130
|
-
#
|
131
|
-
# Spec::Runner.configure do |config|
|
132
|
-
# config.include(CustomGameMatchers)
|
133
|
-
# end
|
134
|
-
#
|
135
|
-
module Matchers
|
136
|
-
module ModuleMethods
|
137
|
-
attr_accessor :generated_description
|
138
|
-
|
139
|
-
def clear_generated_description
|
140
|
-
self.generated_description = nil
|
141
|
-
end
|
142
|
-
end
|
143
|
-
|
144
|
-
extend ModuleMethods
|
145
|
-
|
146
|
-
def method_missing(sym, *args, &block) # :nodoc:
|
147
|
-
return Matchers::Be.new(sym, *args) if sym.starts_with?("be_")
|
148
|
-
return Matchers::Has.new(sym, *args) if sym.starts_with?("have_")
|
149
|
-
super
|
150
|
-
end
|
151
|
-
|
152
|
-
class MatcherError < StandardError
|
153
|
-
end
|
154
|
-
|
155
|
-
end
|
156
|
-
end
|