rspec 0.0.10 → 0.1.0
Sign up to get free protection for your applications and to get access to all the features.
- 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
data/CHANGES
ADDED
data/README
ADDED
@@ -0,0 +1,20 @@
|
|
1
|
+
= RSpec - Behaviour Specification Framework for Ruby
|
2
|
+
|
3
|
+
RSpec is a behaviour specification framework for Ruby. RSpec was created in
|
4
|
+
response to Dave Astels' article _A New Look at Test Driven Development_ which
|
5
|
+
can be read at: http://daveastels.com/index.php?p=5 RSpec is intended to
|
6
|
+
provide the features discussed in Dave's article.
|
7
|
+
|
8
|
+
RSpec was first explored by Steven Baker <srbaker@pobox.com> and Gabriel
|
9
|
+
Bauman <gbauman@gmail.com>, and has since received numerous contributions
|
10
|
+
from Dave himself.
|
11
|
+
|
12
|
+
== Download/Installation
|
13
|
+
|
14
|
+
RSpec is currently being hosted in the Monotone distributed version control system. To checkout RSpec, please download and install Monotone according to the documentation on the monotone website. Then use the following set of commands to grab the latest RSpec sources.
|
15
|
+
|
16
|
+
* monotone --db=database db init
|
17
|
+
* monotone --db=database pull goliath.fundynet.ca org.rubyforge.rspec
|
18
|
+
* monotone --db=database --branch=org.rubyforge.rspec checkout RSpec
|
19
|
+
|
20
|
+
Please visit this page periodically, it will be updated with more information as it is made available including documentation, mailing lists, bug tracking, and more. Special thanks to RubyForge for hosting this project site.
|
data/Rakefile.rb
ADDED
@@ -0,0 +1,122 @@
|
|
1
|
+
$:.unshift('lib')
|
2
|
+
require 'xforge'
|
3
|
+
require 'rake/gempackagetask'
|
4
|
+
require 'rake/contrib/rubyforgepublisher'
|
5
|
+
require 'rake/clean'
|
6
|
+
require 'rake/testtask'
|
7
|
+
require 'rake/rdoctask'
|
8
|
+
|
9
|
+
PKG_NAME = "rspec"
|
10
|
+
PKG_VERSION = "0.1.0"
|
11
|
+
PKG_FILE_NAME = "#{PKG_NAME}-#{PKG_VERSION}"
|
12
|
+
PKG_FILES = FileList[
|
13
|
+
'[A-Z]*',
|
14
|
+
'lib/**/*.rb',
|
15
|
+
'doc/**/*'
|
16
|
+
]
|
17
|
+
|
18
|
+
task :default => [:gem]
|
19
|
+
|
20
|
+
Rake::TestTask.new do |t|
|
21
|
+
t.libs << "test"
|
22
|
+
t.test_files = FileList['**/*_test.rb']
|
23
|
+
t.verbose = true
|
24
|
+
end
|
25
|
+
|
26
|
+
# Create a task to build the RDOC documentation tree.
|
27
|
+
rd = Rake::RDocTask.new("rdoc") do |rdoc|
|
28
|
+
rdoc.rdoc_dir = 'html'
|
29
|
+
rdoc.title = "RSpec"
|
30
|
+
rdoc.options << '--line-numbers' << '--inline-source' << '--main' << 'README'
|
31
|
+
rdoc.rdoc_files.include('README', 'CHANGES')
|
32
|
+
rdoc.rdoc_files.include('lib/**/*.rb', 'doc/**/*.rdoc')
|
33
|
+
rdoc.rdoc_files.exclude('doc/**/*_attrs.rdoc')
|
34
|
+
end
|
35
|
+
|
36
|
+
# ====================================================================
|
37
|
+
# Create a task that will package the Rake software into distributable
|
38
|
+
# tar, zip and gem files.
|
39
|
+
|
40
|
+
spec = Gem::Specification.new do |s|
|
41
|
+
|
42
|
+
#### Basic information.
|
43
|
+
|
44
|
+
s.name = PKG_NAME
|
45
|
+
s.version = PKG_VERSION
|
46
|
+
s.summary = "Behaviour Specification Framework for Ruby"
|
47
|
+
s.description = <<-EOF
|
48
|
+
RSpec is a behaviour specification framework for Ruby. RSpec was created in
|
49
|
+
response to Dave Astels' article _A New Look at Test Driven Development_ which
|
50
|
+
can be read at: http://daveastels.com/index.php?p=5 RSpec is intended to
|
51
|
+
provide the features discussed in Dave's article.
|
52
|
+
EOF
|
53
|
+
|
54
|
+
s.files = PKG_FILES.to_a
|
55
|
+
s.require_path = 'lib'
|
56
|
+
|
57
|
+
#### Documentation and testing.
|
58
|
+
|
59
|
+
s.has_rdoc = true
|
60
|
+
s.extra_rdoc_files = rd.rdoc_files.reject { |fn| fn =~ /\.rb$/ }.to_a
|
61
|
+
s.rdoc_options <<
|
62
|
+
'--title' << 'RSpec' <<
|
63
|
+
'--main' << 'README' <<
|
64
|
+
'--line-numbers'
|
65
|
+
|
66
|
+
#### Author and project details.
|
67
|
+
|
68
|
+
s.author = "Steven Baker"
|
69
|
+
s.email = "srbaker@pobox.com"
|
70
|
+
s.homepage = "http://rspec.rubyforge.org"
|
71
|
+
s.rubyforge_project = "rspec"
|
72
|
+
end
|
73
|
+
|
74
|
+
desc "Build Gem"
|
75
|
+
Rake::GemPackageTask.new(spec) do |pkg|
|
76
|
+
pkg.need_zip = true
|
77
|
+
pkg.need_tar = true
|
78
|
+
end
|
79
|
+
task :gem => [:test]
|
80
|
+
|
81
|
+
# Support Tasks ------------------------------------------------------
|
82
|
+
|
83
|
+
def egrep(pattern)
|
84
|
+
Dir['**/*.rb'].each do |fn|
|
85
|
+
count = 0
|
86
|
+
open(fn) do |f|
|
87
|
+
while line = f.gets
|
88
|
+
count += 1
|
89
|
+
if line =~ pattern
|
90
|
+
puts "#{fn}:#{count}:#{line}"
|
91
|
+
end
|
92
|
+
end
|
93
|
+
end
|
94
|
+
end
|
95
|
+
end
|
96
|
+
|
97
|
+
desc "Look for TODO and FIXME tags in the code"
|
98
|
+
task :todo do
|
99
|
+
egrep /#.*(FIXME|TODO|TBD)/
|
100
|
+
end
|
101
|
+
|
102
|
+
task :release => [:publish_doc, :release_files]
|
103
|
+
|
104
|
+
task :publish_doc => [:rdoc] do
|
105
|
+
publisher = Rake::RubyForgePublisher.new(PKG_NAME, ENV['RUBYFORGE_USER'])
|
106
|
+
publisher.upload
|
107
|
+
end
|
108
|
+
|
109
|
+
desc "Release gem to RubyForge. MAKE SURE PKG_VERSION is aligned with the CHANGELOG file"
|
110
|
+
task :release_files => [:gem] do
|
111
|
+
release_files = FileList[
|
112
|
+
"pkg/#{PKG_FILE_NAME}.gem"
|
113
|
+
]
|
114
|
+
|
115
|
+
Rake::XForge::Release.new(PKG_NAME) do |xf|
|
116
|
+
# Never hardcode user name and password in the Rakefile!
|
117
|
+
xf.user_name = ENV['RUBYFORGE_USER']
|
118
|
+
xf.password = ENV['RUBYFORGE_PASSWORD']
|
119
|
+
xf.files = release_files.to_a
|
120
|
+
xf.release_name = "RSpec #{PKG_VERSION}"
|
121
|
+
end
|
122
|
+
end
|
data/lib/rspec.rb
ADDED
data/lib/spec.rb
CHANGED
@@ -1,30 +1,5 @@
|
|
1
|
-
require 'spec/
|
1
|
+
require 'spec/context'
|
2
2
|
require 'spec/expectations'
|
3
|
-
require 'spec/
|
4
|
-
require 'spec/
|
5
|
-
require 'spec/
|
6
|
-
require 'spec/adapters'
|
7
|
-
|
8
|
-
if Object.const_defined?(:Test)
|
9
|
-
require 'spec/interop/test'
|
10
|
-
end
|
11
|
-
|
12
|
-
module Spec
|
13
|
-
class << self
|
14
|
-
def run?
|
15
|
-
@run || rspec_options.examples_run?
|
16
|
-
end
|
17
|
-
|
18
|
-
def run
|
19
|
-
return true if run?
|
20
|
-
result = rspec_options.run_examples
|
21
|
-
@run = true
|
22
|
-
result
|
23
|
-
end
|
24
|
-
attr_writer :run
|
25
|
-
|
26
|
-
def exit?
|
27
|
-
!Object.const_defined?(:Test) || Test::Unit.run?
|
28
|
-
end
|
29
|
-
end
|
30
|
-
end
|
3
|
+
require 'spec/exceptions'
|
4
|
+
require 'spec/text_runner'
|
5
|
+
require 'spec/mock'
|
data/lib/spec/context.rb
ADDED
@@ -0,0 +1,61 @@
|
|
1
|
+
require 'spec'
|
2
|
+
|
3
|
+
|
4
|
+
module Spec
|
5
|
+
class Context
|
6
|
+
|
7
|
+
def initialize(specification=nil)
|
8
|
+
@specification = specification
|
9
|
+
end
|
10
|
+
|
11
|
+
def run(result_listener)
|
12
|
+
result = false
|
13
|
+
|
14
|
+
result_listener.spec(@specification)
|
15
|
+
setup
|
16
|
+
begin
|
17
|
+
__send__(@specification)
|
18
|
+
result_listener.pass(@specification)
|
19
|
+
rescue Exception
|
20
|
+
result_listener.failure(@specification, $!)
|
21
|
+
end
|
22
|
+
teardown
|
23
|
+
|
24
|
+
return result
|
25
|
+
end
|
26
|
+
|
27
|
+
def setup
|
28
|
+
end
|
29
|
+
|
30
|
+
def teardown
|
31
|
+
end
|
32
|
+
|
33
|
+
def self.collection
|
34
|
+
specs = []
|
35
|
+
self.specifications.each do |spec|
|
36
|
+
specs << self.new(spec.to_sym)
|
37
|
+
end
|
38
|
+
|
39
|
+
return specs
|
40
|
+
end
|
41
|
+
|
42
|
+
def self.specifications
|
43
|
+
return self.my_methods.select {|spec| self.specification_name?(spec)}
|
44
|
+
end
|
45
|
+
|
46
|
+
def self.my_methods
|
47
|
+
self.instance_methods - self.superclass.instance_methods
|
48
|
+
end
|
49
|
+
|
50
|
+
def self.specification_name?(name)
|
51
|
+
return false if not self.new.method(name).arity == 0
|
52
|
+
return false if name[0..0] == '_'
|
53
|
+
return true
|
54
|
+
end
|
55
|
+
|
56
|
+
def violated
|
57
|
+
raise Spec::Exceptions::ExpectationNotMetError.new
|
58
|
+
end
|
59
|
+
|
60
|
+
end
|
61
|
+
end
|
@@ -1,10 +1,11 @@
|
|
1
1
|
module Spec
|
2
|
-
module
|
3
|
-
class
|
2
|
+
module Exceptions
|
3
|
+
class ExpectationNotMetError < StandardError
|
4
4
|
end
|
5
5
|
|
6
|
-
class
|
6
|
+
class MockExpectationError < StandardError
|
7
7
|
end
|
8
|
+
|
9
|
+
|
8
10
|
end
|
9
11
|
end
|
10
|
-
|
data/lib/spec/expectations.rb
CHANGED
@@ -1,56 +1,67 @@
|
|
1
|
-
require 'spec/matchers'
|
2
|
-
require 'spec/expectations/errors'
|
3
|
-
require 'spec/expectations/extensions'
|
4
|
-
require 'spec/expectations/handler'
|
5
|
-
|
6
1
|
module Spec
|
7
|
-
|
8
|
-
# Spec::Expectations lets you set expectations on your objects.
|
9
|
-
#
|
10
|
-
# result.should == 37
|
11
|
-
# team.should have(11).players_on_the_field
|
12
|
-
#
|
13
|
-
# == How Expectations work.
|
14
|
-
#
|
15
|
-
# Spec::Expectations adds two methods to Object:
|
16
|
-
#
|
17
|
-
# should(matcher=nil)
|
18
|
-
# should_not(matcher=nil)
|
19
|
-
#
|
20
|
-
# Both methods take an optional Expression Matcher (See Spec::Matchers).
|
21
|
-
#
|
22
|
-
# When +should+ receives an Expression Matcher, it calls <tt>matches?(self)</tt>. If
|
23
|
-
# it returns +true+, the spec passes and execution continues. If it returns
|
24
|
-
# +false+, then the spec fails with the message returned by <tt>matcher.failure_message</tt>.
|
25
|
-
#
|
26
|
-
# Similarly, when +should_not+ receives a matcher, it calls <tt>matches?(self)</tt>. If
|
27
|
-
# it returns +false+, the spec passes and execution continues. If it returns
|
28
|
-
# +true+, then the spec fails with the message returned by <tt>matcher.negative_failure_message</tt>.
|
29
|
-
#
|
30
|
-
# RSpec ships with a standard set of useful matchers, and writing your own
|
31
|
-
# matchers is quite simple. See Spec::Matchers for details.
|
32
2
|
module Expectations
|
33
|
-
|
34
|
-
|
35
|
-
|
36
|
-
|
37
|
-
|
38
|
-
# When a differ has been assigned and fail_with is passed
|
39
|
-
# <code>expected</code> and <code>target</code>, passes them
|
40
|
-
# to the differ to append a diff message to the failure message.
|
41
|
-
def fail_with(message, expected=nil, target=nil) # :nodoc:
|
42
|
-
if Array === message && message.length == 3
|
43
|
-
message, expected, target = message[0], message[1], message[2]
|
44
|
-
end
|
45
|
-
unless (differ.nil? || expected.nil? || target.nil?)
|
46
|
-
if expected.is_a?(String)
|
47
|
-
message << "\nDiff:" << self.differ.diff_as_string(target.to_s, expected)
|
48
|
-
elsif !target.is_a?(Proc)
|
49
|
-
message << "\nDiff:" << self.differ.diff_as_object(target, expected)
|
50
|
-
end
|
51
|
-
end
|
52
|
-
Kernel::raise(Spec::Expectations::ExpectationNotMetError.new(message))
|
3
|
+
|
4
|
+
def should(message=nil)
|
5
|
+
message ||= "Expectation not met."
|
6
|
+
if (! yield)
|
7
|
+
raise Spec::Exceptions::ExpectationNotMetError.new(message)
|
53
8
|
end
|
54
9
|
end
|
10
|
+
|
11
|
+
def should_equal(expected, message=nil)
|
12
|
+
message ||= "<#{self}> should be <#{expected}>"
|
13
|
+
should(message) { self.eql?(expected) }
|
14
|
+
end
|
15
|
+
|
16
|
+
def should_not_equal(expected, message=nil)
|
17
|
+
message ||= "<#{self}> should not be <#{expected}>"
|
18
|
+
should(message) { not self.eql?(expected) }
|
19
|
+
end
|
20
|
+
|
21
|
+
def should_be_nil(message=nil)
|
22
|
+
message ||= "<#{self}> should be nil"
|
23
|
+
should(message) { self.nil? }
|
24
|
+
end
|
25
|
+
|
26
|
+
def should_not_be_nil(message=nil)
|
27
|
+
message ||= "<#{self}> should not be nil"
|
28
|
+
should(message) { not self.nil? }
|
29
|
+
end
|
30
|
+
|
31
|
+
def should_be_empty(message=nil)
|
32
|
+
message ||= "<#{self.inspect}> should be empty"
|
33
|
+
should(message) { self.empty? }
|
34
|
+
end
|
35
|
+
|
36
|
+
def should_not_be_empty(message=nil)
|
37
|
+
message ||= "<#{self.inspect}> should not be empty"
|
38
|
+
should(message) { not self.empty? }
|
39
|
+
end
|
40
|
+
|
41
|
+
def should_include(sub, message=nil)
|
42
|
+
message ||= "<#{self.inspect}> should include <#{sub.inspect}>"
|
43
|
+
should(message) { self.include? sub }
|
44
|
+
end
|
45
|
+
|
46
|
+
def should_not_include(sub, message=nil)
|
47
|
+
message ||= "<#{self.inspect}> should not include <#{sub.inspect}>"
|
48
|
+
should(message) { not self.include? sub }
|
49
|
+
end
|
50
|
+
|
51
|
+
def should_be_true(message=nil)
|
52
|
+
message ||= "<#{self}> should be true"
|
53
|
+
should(message) { self }
|
54
|
+
end
|
55
|
+
|
56
|
+
def should_be_false(message=nil)
|
57
|
+
message ||= "<#{self}> should be false"
|
58
|
+
should(message) { not self }
|
59
|
+
end
|
55
60
|
end
|
61
|
+
|
62
|
+
end
|
63
|
+
|
64
|
+
|
65
|
+
class Object
|
66
|
+
include Spec::Expectations
|
56
67
|
end
|
data/lib/spec/mock.rb
ADDED
@@ -0,0 +1,104 @@
|
|
1
|
+
require 'spec'
|
2
|
+
|
3
|
+
|
4
|
+
class Mock
|
5
|
+
|
6
|
+
def initialize
|
7
|
+
@expectations = Hash.new
|
8
|
+
end
|
9
|
+
|
10
|
+
def __expects(sym)
|
11
|
+
@expectations[sym] = MockExpectation.new
|
12
|
+
@expectations[sym]
|
13
|
+
end
|
14
|
+
|
15
|
+
def __verify
|
16
|
+
@expectations.keys.each do |method|
|
17
|
+
@expectations[method].verify(method.to_s)
|
18
|
+
end
|
19
|
+
end
|
20
|
+
|
21
|
+
def ignore_missing
|
22
|
+
@ignore_missing = true
|
23
|
+
end
|
24
|
+
|
25
|
+
def method_missing(sym, *args, &block)
|
26
|
+
if expectation = @expectations[sym]
|
27
|
+
expectation.verify_call(sym.to_s,args,block)
|
28
|
+
else
|
29
|
+
begin
|
30
|
+
super(sym, *args, &block) unless @ignore_missing
|
31
|
+
rescue NoMethodError
|
32
|
+
raise Spec::Exceptions::MockExpectationError, "Unexpected method "+sym.to_s+" called."
|
33
|
+
end
|
34
|
+
end
|
35
|
+
end
|
36
|
+
|
37
|
+
end
|
38
|
+
|
39
|
+
|
40
|
+
class MockExpectation
|
41
|
+
|
42
|
+
def verify(message)
|
43
|
+
unless @expected_call_count == @call_count
|
44
|
+
raise Spec::Exceptions::MockExpectationError,
|
45
|
+
message+": Expected #{@expected_call_count} calls, got #{@call_count} calls"
|
46
|
+
end
|
47
|
+
end
|
48
|
+
|
49
|
+
def verify_call(message,args,block)
|
50
|
+
unless @expected_params == nil or @expected_params == args
|
51
|
+
raise Spec::Exceptions::MockExpectationError,
|
52
|
+
message+": Parameter mismatch: Expected <#{@expected_params}>, got <#{@args}>"
|
53
|
+
end
|
54
|
+
args << block unless block.nil?
|
55
|
+
@call_count = @call_count + 1
|
56
|
+
@block.call(*args)
|
57
|
+
end
|
58
|
+
|
59
|
+
def initialize
|
60
|
+
@block = proc {}
|
61
|
+
@expected_call_count = 1
|
62
|
+
@call_count = 0
|
63
|
+
@expected_params = nil
|
64
|
+
end
|
65
|
+
|
66
|
+
def with(*args)
|
67
|
+
@expected_params = args
|
68
|
+
self
|
69
|
+
end
|
70
|
+
|
71
|
+
def with_no_args
|
72
|
+
@expected_params = []
|
73
|
+
self
|
74
|
+
end
|
75
|
+
|
76
|
+
def with_any_args
|
77
|
+
@expected_params = nill
|
78
|
+
self
|
79
|
+
end
|
80
|
+
|
81
|
+
def at_least_once
|
82
|
+
self
|
83
|
+
end
|
84
|
+
|
85
|
+
def never
|
86
|
+
@expected_call_count = 0
|
87
|
+
self
|
88
|
+
end
|
89
|
+
|
90
|
+
def once
|
91
|
+
@expected_call_count = 1
|
92
|
+
self
|
93
|
+
end
|
94
|
+
|
95
|
+
def twice
|
96
|
+
@expected_call_count = 2
|
97
|
+
self
|
98
|
+
end
|
99
|
+
|
100
|
+
def returns(value=nil,&block)
|
101
|
+
@block = block_given? ? block : proc { value }
|
102
|
+
end
|
103
|
+
|
104
|
+
end
|