dchelimsky-rspec 1.1.10
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/History.txt +1192 -0
- data/License.txt +22 -0
- data/Manifest.txt +403 -0
- data/README.txt +39 -0
- data/Rakefile +90 -0
- data/TODO.txt +10 -0
- data/bin/autospec +4 -0
- data/bin/spec +4 -0
- data/examples/pure/autogenerated_docstrings_example.rb +19 -0
- data/examples/pure/before_and_after_example.rb +40 -0
- data/examples/pure/behave_as_example.rb +45 -0
- data/examples/pure/custom_expectation_matchers.rb +54 -0
- data/examples/pure/custom_formatter.rb +12 -0
- data/examples/pure/dynamic_spec.rb +9 -0
- data/examples/pure/file_accessor.rb +19 -0
- data/examples/pure/file_accessor_spec.rb +38 -0
- data/examples/pure/greeter_spec.rb +31 -0
- data/examples/pure/helper_method_example.rb +14 -0
- data/examples/pure/io_processor.rb +8 -0
- data/examples/pure/io_processor_spec.rb +21 -0
- data/examples/pure/legacy_spec.rb +11 -0
- data/examples/pure/mocking_example.rb +27 -0
- data/examples/pure/multi_threaded_behaviour_runner.rb +28 -0
- data/examples/pure/nested_classes_example.rb +36 -0
- data/examples/pure/partial_mock_example.rb +29 -0
- data/examples/pure/pending_example.rb +20 -0
- data/examples/pure/predicate_example.rb +27 -0
- data/examples/pure/priority.txt +1 -0
- data/examples/pure/shared_example_group_example.rb +81 -0
- data/examples/pure/shared_stack_examples.rb +38 -0
- data/examples/pure/spec_helper.rb +3 -0
- data/examples/pure/stack.rb +36 -0
- data/examples/pure/stack_spec.rb +63 -0
- data/examples/pure/stack_spec_with_nested_example_groups.rb +67 -0
- data/examples/pure/stubbing_example.rb +69 -0
- data/examples/pure/yielding_example.rb +33 -0
- data/examples/stories/adder.rb +13 -0
- data/examples/stories/addition +34 -0
- data/examples/stories/addition.rb +9 -0
- data/examples/stories/calculator.rb +65 -0
- data/examples/stories/game-of-life/.loadpath +5 -0
- data/examples/stories/game-of-life/README.txt +21 -0
- data/examples/stories/game-of-life/behaviour/everything.rb +6 -0
- data/examples/stories/game-of-life/behaviour/examples/examples.rb +3 -0
- data/examples/stories/game-of-life/behaviour/examples/game_behaviour.rb +35 -0
- data/examples/stories/game-of-life/behaviour/examples/grid_behaviour.rb +66 -0
- data/examples/stories/game-of-life/behaviour/stories/CellsWithLessThanTwoNeighboursDie.story +21 -0
- data/examples/stories/game-of-life/behaviour/stories/CellsWithMoreThanThreeNeighboursDie.story +21 -0
- data/examples/stories/game-of-life/behaviour/stories/EmptySpacesWithThreeNeighboursCreateACell.story +42 -0
- data/examples/stories/game-of-life/behaviour/stories/ICanCreateACell.story +42 -0
- data/examples/stories/game-of-life/behaviour/stories/ICanKillACell.story +17 -0
- data/examples/stories/game-of-life/behaviour/stories/TheGridWraps.story +53 -0
- data/examples/stories/game-of-life/behaviour/stories/create_a_cell.rb +52 -0
- data/examples/stories/game-of-life/behaviour/stories/helper.rb +6 -0
- data/examples/stories/game-of-life/behaviour/stories/kill_a_cell.rb +26 -0
- data/examples/stories/game-of-life/behaviour/stories/steps.rb +5 -0
- data/examples/stories/game-of-life/behaviour/stories/stories.rb +3 -0
- data/examples/stories/game-of-life/behaviour/stories/stories.txt +22 -0
- data/examples/stories/game-of-life/life/game.rb +23 -0
- data/examples/stories/game-of-life/life/grid.rb +43 -0
- data/examples/stories/game-of-life/life.rb +3 -0
- data/examples/stories/helper.rb +9 -0
- data/examples/stories/steps/addition_steps.rb +18 -0
- data/failing_examples/README.txt +7 -0
- data/failing_examples/diffing_spec.rb +36 -0
- data/failing_examples/failing_autogenerated_docstrings_example.rb +19 -0
- data/failing_examples/failure_in_setup.rb +10 -0
- data/failing_examples/failure_in_teardown.rb +10 -0
- data/failing_examples/mocking_example.rb +40 -0
- data/failing_examples/mocking_with_flexmock.rb +26 -0
- data/failing_examples/mocking_with_mocha.rb +25 -0
- data/failing_examples/mocking_with_rr.rb +27 -0
- data/failing_examples/partial_mock_example.rb +20 -0
- data/failing_examples/predicate_example.rb +29 -0
- data/failing_examples/raising_example.rb +47 -0
- data/failing_examples/spec_helper.rb +3 -0
- data/failing_examples/syntax_error_example.rb +7 -0
- data/failing_examples/team_spec.rb +44 -0
- data/failing_examples/timeout_behaviour.rb +7 -0
- data/init.rb +9 -0
- data/lib/autotest/discover.rb +3 -0
- data/lib/autotest/rspec.rb +46 -0
- data/lib/spec/adapters/ruby_engine/mri.rb +8 -0
- data/lib/spec/adapters/ruby_engine/rubinius.rb +8 -0
- data/lib/spec/adapters/ruby_engine.rb +26 -0
- data/lib/spec/adapters.rb +1 -0
- data/lib/spec/example/before_and_after_hooks.rb +93 -0
- data/lib/spec/example/configuration.rb +167 -0
- data/lib/spec/example/errors.rb +30 -0
- data/lib/spec/example/example_group.rb +25 -0
- data/lib/spec/example/example_group_factory.rb +81 -0
- data/lib/spec/example/example_group_methods.rb +368 -0
- data/lib/spec/example/example_matcher.rb +44 -0
- data/lib/spec/example/example_methods.rb +105 -0
- data/lib/spec/example/module_reopening_fix.rb +21 -0
- data/lib/spec/example/pending.rb +18 -0
- data/lib/spec/example/shared_example_group.rb +52 -0
- data/lib/spec/example.rb +12 -0
- data/lib/spec/expectations/differs/default.rb +66 -0
- data/lib/spec/expectations/errors.rb +12 -0
- data/lib/spec/expectations/extensions/object.rb +63 -0
- data/lib/spec/expectations/extensions/string_and_symbol.rb +17 -0
- data/lib/spec/expectations/extensions.rb +2 -0
- data/lib/spec/expectations/handler.rb +52 -0
- data/lib/spec/expectations.rb +56 -0
- data/lib/spec/extensions/class.rb +24 -0
- data/lib/spec/extensions/main.rb +87 -0
- data/lib/spec/extensions/metaclass.rb +7 -0
- data/lib/spec/extensions/object.rb +6 -0
- data/lib/spec/extensions.rb +4 -0
- data/lib/spec/interop/test/unit/autorunner.rb +6 -0
- data/lib/spec/interop/test/unit/testcase.rb +71 -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/interop/test.rb +12 -0
- data/lib/spec/matchers/be.rb +221 -0
- data/lib/spec/matchers/be_close.rb +37 -0
- data/lib/spec/matchers/change.rb +148 -0
- data/lib/spec/matchers/eql.rb +43 -0
- data/lib/spec/matchers/equal.rb +43 -0
- data/lib/spec/matchers/exist.rb +22 -0
- data/lib/spec/matchers/has.rb +34 -0
- data/lib/spec/matchers/have.rb +150 -0
- data/lib/spec/matchers/include.rb +77 -0
- data/lib/spec/matchers/match.rb +41 -0
- data/lib/spec/matchers/operator_matcher.rb +79 -0
- data/lib/spec/matchers/raise_error.rb +132 -0
- data/lib/spec/matchers/respond_to.rb +46 -0
- data/lib/spec/matchers/satisfy.rb +47 -0
- data/lib/spec/matchers/simple_matcher.rb +132 -0
- data/lib/spec/matchers/throw_symbol.rb +74 -0
- data/lib/spec/matchers.rb +162 -0
- data/lib/spec/mocks/argument_constraints.rb +165 -0
- data/lib/spec/mocks/argument_expectation.rb +49 -0
- data/lib/spec/mocks/error_generator.rb +84 -0
- data/lib/spec/mocks/errors.rb +10 -0
- data/lib/spec/mocks/extensions/object.rb +3 -0
- data/lib/spec/mocks/extensions.rb +1 -0
- data/lib/spec/mocks/framework.rb +15 -0
- data/lib/spec/mocks/message_expectation.rb +331 -0
- data/lib/spec/mocks/methods.rb +51 -0
- data/lib/spec/mocks/mock.rb +56 -0
- data/lib/spec/mocks/order_group.rb +29 -0
- data/lib/spec/mocks/proxy.rb +224 -0
- data/lib/spec/mocks/space.rb +28 -0
- data/lib/spec/mocks/spec_methods.rb +46 -0
- data/lib/spec/mocks.rb +200 -0
- data/lib/spec/rake/spectask.rb +227 -0
- data/lib/spec/rake/verify_rcov.rb +52 -0
- data/lib/spec/runner/backtrace_tweaker.rb +56 -0
- data/lib/spec/runner/class_and_arguments_parser.rb +16 -0
- data/lib/spec/runner/command_line.rb +17 -0
- data/lib/spec/runner/drb_command_line.rb +20 -0
- data/lib/spec/runner/example_group_runner.rb +59 -0
- data/lib/spec/runner/formatter/base_formatter.rb +79 -0
- data/lib/spec/runner/formatter/base_text_formatter.rb +126 -0
- data/lib/spec/runner/formatter/failing_example_groups_formatter.rb +27 -0
- data/lib/spec/runner/formatter/failing_examples_formatter.rb +20 -0
- data/lib/spec/runner/formatter/html_formatter.rb +337 -0
- data/lib/spec/runner/formatter/nested_text_formatter.rb +65 -0
- data/lib/spec/runner/formatter/profile_formatter.rb +51 -0
- data/lib/spec/runner/formatter/progress_bar_formatter.rb +34 -0
- data/lib/spec/runner/formatter/snippet_extractor.rb +52 -0
- data/lib/spec/runner/formatter/specdoc_formatter.rb +39 -0
- data/lib/spec/runner/formatter/story/html_formatter.rb +174 -0
- data/lib/spec/runner/formatter/story/plain_text_formatter.rb +194 -0
- data/lib/spec/runner/formatter/story/progress_bar_formatter.rb +42 -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/option_parser.rb +205 -0
- data/lib/spec/runner/options.rb +320 -0
- data/lib/spec/runner/reporter.rb +167 -0
- data/lib/spec/runner/spec_parser.rb +71 -0
- data/lib/spec/runner.rb +213 -0
- data/lib/spec/story/extensions/main.rb +86 -0
- data/lib/spec/story/extensions/regexp.rb +9 -0
- data/lib/spec/story/extensions/string.rb +9 -0
- data/lib/spec/story/extensions.rb +3 -0
- data/lib/spec/story/given_scenario.rb +14 -0
- data/lib/spec/story/runner/plain_text_story_runner.rb +48 -0
- data/lib/spec/story/runner/scenario_collector.rb +18 -0
- data/lib/spec/story/runner/scenario_runner.rb +54 -0
- data/lib/spec/story/runner/story_mediator.rb +137 -0
- data/lib/spec/story/runner/story_parser.rb +247 -0
- data/lib/spec/story/runner/story_runner.rb +70 -0
- data/lib/spec/story/runner.rb +59 -0
- data/lib/spec/story/scenario.rb +14 -0
- data/lib/spec/story/step.rb +70 -0
- data/lib/spec/story/step_group.rb +89 -0
- data/lib/spec/story/step_mother.rb +38 -0
- data/lib/spec/story/story.rb +39 -0
- data/lib/spec/story/world.rb +128 -0
- data/lib/spec/story.rb +10 -0
- data/lib/spec/version.rb +13 -0
- data/lib/spec.rb +32 -0
- data/plugins/mock_frameworks/flexmock.rb +23 -0
- data/plugins/mock_frameworks/mocha.rb +19 -0
- data/plugins/mock_frameworks/rr.rb +21 -0
- data/plugins/mock_frameworks/rspec.rb +20 -0
- data/rake_tasks/examples.rake +7 -0
- data/rake_tasks/examples_with_rcov.rake +9 -0
- data/rake_tasks/failing_examples_with_html.rake +9 -0
- data/rake_tasks/verify_rcov.rake +7 -0
- data/rspec.gemspec +42 -0
- data/spec/README.jruby +15 -0
- data/spec/autotest/autotest_helper.rb +6 -0
- data/spec/autotest/autotest_matchers.rb +47 -0
- data/spec/autotest/discover_spec.rb +19 -0
- data/spec/autotest/rspec_spec.rb +150 -0
- data/spec/rspec_suite.rb +6 -0
- data/spec/ruby_forker.rb +13 -0
- data/spec/spec/adapters/ruby_engine_spec.rb +16 -0
- data/spec/spec/example/configuration_spec.rb +296 -0
- data/spec/spec/example/example_group_class_definition_spec.rb +48 -0
- data/spec/spec/example/example_group_factory_spec.rb +165 -0
- data/spec/spec/example/example_group_methods_spec.rb +584 -0
- data/spec/spec/example/example_group_spec.rb +683 -0
- data/spec/spec/example/example_matcher_spec.rb +96 -0
- data/spec/spec/example/example_methods_spec.rb +169 -0
- data/spec/spec/example/example_runner_spec.rb +194 -0
- data/spec/spec/example/nested_example_group_spec.rb +71 -0
- data/spec/spec/example/pending_module_spec.rb +145 -0
- data/spec/spec/example/predicate_matcher_spec.rb +21 -0
- data/spec/spec/example/shared_example_group_spec.rb +281 -0
- data/spec/spec/example/subclassing_example_group_spec.rb +25 -0
- data/spec/spec/expectations/differs/default_spec.rb +127 -0
- data/spec/spec/expectations/extensions/object_spec.rb +95 -0
- data/spec/spec/expectations/fail_with_spec.rb +71 -0
- data/spec/spec/extensions/main_spec.rb +71 -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/testsuite_adapter_spec_with_test_unit.rb +38 -0
- data/spec/spec/interop/test/unit/spec_spec.rb +52 -0
- data/spec/spec/interop/test/unit/test_unit_spec_helper.rb +14 -0
- data/spec/spec/interop/test/unit/testcase_spec.rb +49 -0
- data/spec/spec/interop/test/unit/testsuite_adapter_spec.rb +9 -0
- data/spec/spec/matchers/be_close_spec.rb +39 -0
- data/spec/spec/matchers/be_spec.rb +248 -0
- data/spec/spec/matchers/change_spec.rb +329 -0
- data/spec/spec/matchers/description_generation_spec.rb +153 -0
- data/spec/spec/matchers/eql_spec.rb +28 -0
- data/spec/spec/matchers/equal_spec.rb +28 -0
- data/spec/spec/matchers/exist_spec.rb +57 -0
- data/spec/spec/matchers/handler_spec.rb +150 -0
- data/spec/spec/matchers/has_spec.rb +63 -0
- data/spec/spec/matchers/have_spec.rb +394 -0
- data/spec/spec/matchers/include_spec.rb +64 -0
- data/spec/spec/matchers/match_spec.rb +37 -0
- data/spec/spec/matchers/matcher_methods_spec.rb +78 -0
- data/spec/spec/matchers/mock_constraint_matchers_spec.rb +24 -0
- data/spec/spec/matchers/operator_matcher_spec.rb +191 -0
- data/spec/spec/matchers/raise_error_spec.rb +315 -0
- data/spec/spec/matchers/respond_to_spec.rb +54 -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 +54 -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/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 +24 -0
- data/spec/spec/mocks/bug_report_11545_spec.rb +33 -0
- data/spec/spec/mocks/bug_report_15719_spec.rb +30 -0
- data/spec/spec/mocks/bug_report_496.rb +17 -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/failing_mock_argument_constraints_spec.rb +95 -0
- data/spec/spec/mocks/hash_including_matcher_spec.rb +53 -0
- data/spec/spec/mocks/mock_ordering_spec.rb +84 -0
- data/spec/spec/mocks/mock_space_spec.rb +54 -0
- data/spec/spec/mocks/mock_spec.rb +555 -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 +149 -0
- data/spec/spec/mocks/partial_mock_using_mocks_directly_spec.rb +66 -0
- data/spec/spec/mocks/passing_mock_argument_constraints_spec.rb +130 -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_spec.rb +188 -0
- data/spec/spec/mocks/twice_counts_spec.rb +67 -0
- data/spec/spec/package/bin_spec_spec.rb +22 -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/drb_command_line_spec.rb +97 -0
- data/spec/spec/runner/empty_file.txt +0 -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 +112 -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.4.html +365 -0
- data/spec/spec/runner/formatter/html_formatted-1.8.5-jruby.html +387 -0
- data/spec/spec/runner/formatter/html_formatted-1.8.5.html +371 -0
- data/spec/spec/runner/formatter/html_formatted-1.8.6-jruby.html +381 -0
- data/spec/spec/runner/formatter/html_formatted-1.8.6.html +370 -0
- data/spec/spec/runner/formatter/html_formatter_spec.rb +61 -0
- data/spec/spec/runner/formatter/nested_text_formatter_spec.rb +318 -0
- data/spec/spec/runner/formatter/profile_formatter_spec.rb +65 -0
- data/spec/spec/runner/formatter/progress_bar_formatter_spec.rb +155 -0
- data/spec/spec/runner/formatter/snippet_extractor_spec.rb +18 -0
- data/spec/spec/runner/formatter/spec_mate_formatter_spec.rb +103 -0
- data/spec/spec/runner/formatter/specdoc_formatter_spec.rb +159 -0
- data/spec/spec/runner/formatter/story/html_formatter_spec.rb +135 -0
- data/spec/spec/runner/formatter/story/plain_text_formatter_spec.rb +600 -0
- data/spec/spec/runner/formatter/story/progress_bar_formatter_spec.rb +82 -0
- data/spec/spec/runner/formatter/text_mate_formatted-1.8.4.html +365 -0
- data/spec/spec/runner/formatter/text_mate_formatted-1.8.6.html +370 -0
- data/spec/spec/runner/heckle_runner_spec.rb +78 -0
- data/spec/spec/runner/heckler_spec.rb +13 -0
- data/spec/spec/runner/noisy_backtrace_tweaker_spec.rb +45 -0
- data/spec/spec/runner/option_parser_spec.rb +421 -0
- data/spec/spec/runner/options_spec.rb +450 -0
- data/spec/spec/runner/output_one_time_fixture.rb +7 -0
- data/spec/spec/runner/output_one_time_fixture_runner.rb +8 -0
- data/spec/spec/runner/output_one_time_spec.rb +16 -0
- data/spec/spec/runner/quiet_backtrace_tweaker_spec.rb +62 -0
- data/spec/spec/runner/reporter_spec.rb +238 -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/spec.opts +2 -0
- data/spec/spec/runner/spec_drb.opts +1 -0
- data/spec/spec/runner/spec_parser/spec_parser_fixture.rb +70 -0
- data/spec/spec/runner/spec_parser_spec.rb +85 -0
- data/spec/spec/runner/spec_spaced.opts +2 -0
- data/spec/spec/runner_spec.rb +11 -0
- data/spec/spec/spec_classes.rb +133 -0
- data/spec/spec/story/builders.rb +46 -0
- data/spec/spec/story/extensions/main_spec.rb +161 -0
- data/spec/spec/story/extensions_spec.rb +14 -0
- data/spec/spec/story/given_scenario_spec.rb +27 -0
- data/spec/spec/story/runner/plain_text_story_runner_spec.rb +90 -0
- data/spec/spec/story/runner/scenario_collector_spec.rb +27 -0
- data/spec/spec/story/runner/scenario_runner_spec.rb +214 -0
- data/spec/spec/story/runner/story_mediator_spec.rb +143 -0
- data/spec/spec/story/runner/story_parser_spec.rb +401 -0
- data/spec/spec/story/runner/story_runner_spec.rb +294 -0
- data/spec/spec/story/runner_spec.rb +93 -0
- data/spec/spec/story/scenario_spec.rb +18 -0
- data/spec/spec/story/step_group_spec.rb +157 -0
- data/spec/spec/story/step_mother_spec.rb +84 -0
- data/spec/spec/story/step_spec.rb +272 -0
- data/spec/spec/story/story_helper.rb +2 -0
- data/spec/spec/story/story_spec.rb +84 -0
- data/spec/spec/story/world_spec.rb +423 -0
- data/spec/spec.opts +6 -0
- data/spec/spec_helper.rb +77 -0
- data/stories/all.rb +5 -0
- data/stories/configuration/before_blocks.story +21 -0
- data/stories/configuration/stories.rb +7 -0
- data/stories/example_groups/autogenerated_docstrings +45 -0
- data/stories/example_groups/example_group_with_should_methods +17 -0
- data/stories/example_groups/nested_groups +17 -0
- data/stories/example_groups/output +25 -0
- data/stories/example_groups/stories.rb +7 -0
- data/stories/helper.rb +6 -0
- data/stories/interop/examples_and_tests_together +30 -0
- data/stories/interop/stories.rb +7 -0
- data/stories/interop/test_case_with_should_methods +17 -0
- data/stories/mock_framework_integration/stories.rb +7 -0
- data/stories/mock_framework_integration/use_flexmock.story +9 -0
- data/stories/pending_stories/README +3 -0
- data/stories/resources/helpers/cmdline.rb +9 -0
- data/stories/resources/helpers/story_helper.rb +16 -0
- data/stories/resources/matchers/smart_match.rb +37 -0
- data/stories/resources/spec/before_blocks_example.rb +32 -0
- data/stories/resources/spec/example_group_with_should_methods.rb +12 -0
- data/stories/resources/spec/simple_spec.rb +8 -0
- data/stories/resources/spec/spec_with_flexmock.rb +18 -0
- data/stories/resources/steps/running_rspec.rb +50 -0
- data/stories/resources/stories/failing_story.rb +15 -0
- data/stories/resources/test/spec_and_test_together.rb +57 -0
- data/stories/resources/test/test_case_with_should_methods.rb +30 -0
- data/stories/stories/multiline_steps.story +23 -0
- data/stories/stories/steps/multiline_steps.rb +13 -0
- data/stories/stories/stories.rb +6 -0
- data/story_server/prototype/javascripts/builder.js +136 -0
- data/story_server/prototype/javascripts/controls.js +972 -0
- data/story_server/prototype/javascripts/dragdrop.js +976 -0
- data/story_server/prototype/javascripts/effects.js +1117 -0
- data/story_server/prototype/javascripts/prototype.js +4140 -0
- data/story_server/prototype/javascripts/rspec.js +149 -0
- data/story_server/prototype/javascripts/scriptaculous.js +58 -0
- data/story_server/prototype/javascripts/slider.js +276 -0
- data/story_server/prototype/javascripts/sound.js +55 -0
- data/story_server/prototype/javascripts/unittest.js +568 -0
- data/story_server/prototype/lib/server.rb +24 -0
- data/story_server/prototype/stories.html +176 -0
- data/story_server/prototype/stylesheets/rspec.css +136 -0
- data/story_server/prototype/stylesheets/test.css +90 -0
- metadata +495 -0
@@ -0,0 +1,69 @@
|
|
1
|
+
require File.dirname(__FILE__) + '/spec_helper'
|
2
|
+
|
3
|
+
describe "A consumer of a stub" do
|
4
|
+
it "should be able to stub methods on any Object" do
|
5
|
+
obj = Object.new
|
6
|
+
obj.stub!(:foobar).and_return {:return_value}
|
7
|
+
obj.foobar.should equal(:return_value)
|
8
|
+
end
|
9
|
+
end
|
10
|
+
|
11
|
+
class StubbableClass
|
12
|
+
def self.find id
|
13
|
+
return :original_return
|
14
|
+
end
|
15
|
+
end
|
16
|
+
|
17
|
+
describe "A stubbed method on a class" do
|
18
|
+
it "should return the stubbed value" do
|
19
|
+
StubbableClass.stub!(:find).and_return(:stub_return)
|
20
|
+
StubbableClass.find(1).should equal(:stub_return)
|
21
|
+
end
|
22
|
+
|
23
|
+
it "should revert to the original method after each spec" do
|
24
|
+
StubbableClass.find(1).should equal(:original_return)
|
25
|
+
end
|
26
|
+
|
27
|
+
it "can stub! and mock the same message" do
|
28
|
+
StubbableClass.stub!(:msg).and_return(:stub_value)
|
29
|
+
StubbableClass.should_receive(:msg).with(:arg).and_return(:mock_value)
|
30
|
+
|
31
|
+
StubbableClass.msg.should equal(:stub_value)
|
32
|
+
StubbableClass.msg(:other_arg).should equal(:stub_value)
|
33
|
+
StubbableClass.msg(:arg).should equal(:mock_value)
|
34
|
+
StubbableClass.msg(:another_arg).should equal(:stub_value)
|
35
|
+
StubbableClass.msg(:yet_another_arg).should equal(:stub_value)
|
36
|
+
StubbableClass.msg.should equal(:stub_value)
|
37
|
+
end
|
38
|
+
end
|
39
|
+
|
40
|
+
describe "A mock" do
|
41
|
+
it "can stub!" do
|
42
|
+
mock = mock("stubbing mock")
|
43
|
+
mock.stub!(:msg).and_return(:value)
|
44
|
+
(1..10).each {mock.msg.should equal(:value)}
|
45
|
+
end
|
46
|
+
|
47
|
+
it "can stub! and mock" do
|
48
|
+
mock = mock("stubbing mock")
|
49
|
+
mock.stub!(:stub_message).and_return(:stub_value)
|
50
|
+
mock.should_receive(:mock_message).once.and_return(:mock_value)
|
51
|
+
(1..10).each {mock.stub_message.should equal(:stub_value)}
|
52
|
+
mock.mock_message.should equal(:mock_value)
|
53
|
+
(1..10).each {mock.stub_message.should equal(:stub_value)}
|
54
|
+
end
|
55
|
+
|
56
|
+
it "can stub! and mock the same message" do
|
57
|
+
mock = mock("stubbing mock")
|
58
|
+
mock.stub!(:msg).and_return(:stub_value)
|
59
|
+
mock.should_receive(:msg).with(:arg).and_return(:mock_value)
|
60
|
+
mock.msg.should equal(:stub_value)
|
61
|
+
mock.msg(:other_arg).should equal(:stub_value)
|
62
|
+
mock.msg(:arg).should equal(:mock_value)
|
63
|
+
mock.msg(:another_arg).should equal(:stub_value)
|
64
|
+
mock.msg(:yet_another_arg).should equal(:stub_value)
|
65
|
+
mock.msg.should equal(:stub_value)
|
66
|
+
end
|
67
|
+
end
|
68
|
+
|
69
|
+
|
@@ -0,0 +1,33 @@
|
|
1
|
+
require File.dirname(__FILE__) + '/spec_helper'
|
2
|
+
|
3
|
+
class MessageAppender
|
4
|
+
|
5
|
+
def initialize(appendage)
|
6
|
+
@appendage = appendage
|
7
|
+
end
|
8
|
+
|
9
|
+
def append_to(message)
|
10
|
+
if_told_to_yield do
|
11
|
+
message << @appendage
|
12
|
+
end
|
13
|
+
end
|
14
|
+
|
15
|
+
end
|
16
|
+
|
17
|
+
describe "a message expectation yielding to a block" do
|
18
|
+
it "should yield if told to" do
|
19
|
+
appender = MessageAppender.new("appended to")
|
20
|
+
appender.should_receive(:if_told_to_yield).and_yield
|
21
|
+
message = ""
|
22
|
+
appender.append_to(message)
|
23
|
+
message.should == "appended to"
|
24
|
+
end
|
25
|
+
|
26
|
+
it "should not yield if not told to" do
|
27
|
+
appender = MessageAppender.new("appended to")
|
28
|
+
appender.should_receive(:if_told_to_yield)
|
29
|
+
message = ""
|
30
|
+
appender.append_to(message)
|
31
|
+
message.should == ""
|
32
|
+
end
|
33
|
+
end
|
@@ -0,0 +1,34 @@
|
|
1
|
+
This is a story about a calculator. The text up here above the Story: declaration
|
2
|
+
won't be processed, so you can write whatever you wish!
|
3
|
+
|
4
|
+
Story: simple addition
|
5
|
+
|
6
|
+
As an accountant
|
7
|
+
I want to add numbers
|
8
|
+
So that I can count beans
|
9
|
+
|
10
|
+
Scenario: add one plus one
|
11
|
+
Given an addend of 1
|
12
|
+
And an addend of 1
|
13
|
+
|
14
|
+
When the addends are addeds
|
15
|
+
|
16
|
+
Then the sum should be 3
|
17
|
+
And the corks should be popped
|
18
|
+
|
19
|
+
Scenario: add two plus five
|
20
|
+
Given an addend of 2
|
21
|
+
And an addend of 5
|
22
|
+
|
23
|
+
When the addends are added
|
24
|
+
|
25
|
+
Then the sum should be 7
|
26
|
+
Then it should snow
|
27
|
+
|
28
|
+
Scenario: add three more
|
29
|
+
GivenScenario add two plus five
|
30
|
+
And an addend of 3
|
31
|
+
|
32
|
+
When the addends are added
|
33
|
+
|
34
|
+
Then the sum should be 10
|
@@ -0,0 +1,9 @@
|
|
1
|
+
require File.join(File.dirname(__FILE__), "helper")
|
2
|
+
require File.join(File.dirname(__FILE__), "adder")
|
3
|
+
|
4
|
+
# with_steps_for :addition, :more_addition do
|
5
|
+
with_steps_for :addition, :more_addition do
|
6
|
+
# Then("the corks should be popped") { }
|
7
|
+
run File.expand_path(__FILE__).gsub(".rb","")
|
8
|
+
end
|
9
|
+
|
@@ -0,0 +1,65 @@
|
|
1
|
+
$:.push File.join(File.dirname(__FILE__), *%w[.. .. lib])
|
2
|
+
require 'spec'
|
3
|
+
|
4
|
+
class AdditionMatchers < Spec::Story::StepGroup
|
5
|
+
steps do |add|
|
6
|
+
add.given("an addend of $addend") do |addend|
|
7
|
+
@adder ||= Adder.new
|
8
|
+
@adder << addend.to_i
|
9
|
+
end
|
10
|
+
end
|
11
|
+
end
|
12
|
+
|
13
|
+
steps = AdditionMatchers.new do |add|
|
14
|
+
add.then("the sum should be $sum") do |sum|
|
15
|
+
@sum.should == sum.to_i
|
16
|
+
end
|
17
|
+
end
|
18
|
+
|
19
|
+
steps.when("they are added") do
|
20
|
+
@sum = @adder.sum
|
21
|
+
end
|
22
|
+
|
23
|
+
# This Story uses steps (see above) instead of blocks
|
24
|
+
# passed to Given, When and Then
|
25
|
+
|
26
|
+
Story "addition", %{
|
27
|
+
As an accountant
|
28
|
+
I want to add numbers
|
29
|
+
So that I can count some beans
|
30
|
+
}, :steps_for => steps do
|
31
|
+
Scenario "2 + 3" do
|
32
|
+
Given "an addend of 2"
|
33
|
+
And "an addend of 3"
|
34
|
+
When "they are added"
|
35
|
+
Then "the sum should be 5"
|
36
|
+
end
|
37
|
+
|
38
|
+
# This scenario uses GivenScenario, which silently runs
|
39
|
+
# all the steps in a previous scenario.
|
40
|
+
|
41
|
+
Scenario "add 4 more" do
|
42
|
+
GivenScenario "2 + 3"
|
43
|
+
Given "an addend of 4"
|
44
|
+
When "they are added"
|
45
|
+
Then "the sum should be 9"
|
46
|
+
end
|
47
|
+
end
|
48
|
+
|
49
|
+
# And the class that makes the story pass
|
50
|
+
|
51
|
+
class Adder
|
52
|
+
def << addend
|
53
|
+
addends << addend
|
54
|
+
end
|
55
|
+
|
56
|
+
def sum
|
57
|
+
@addends.inject(0) do |result, addend|
|
58
|
+
result + addend.to_i
|
59
|
+
end
|
60
|
+
end
|
61
|
+
|
62
|
+
def addends
|
63
|
+
@addends ||= []
|
64
|
+
end
|
65
|
+
end
|
@@ -0,0 +1,21 @@
|
|
1
|
+
John Conway's Game of Life
|
2
|
+
|
3
|
+
The Rules
|
4
|
+
---------
|
5
|
+
The Game of Life was invented by John Conway (as you might have gathered).
|
6
|
+
The game is played on a field of cells, each of which has eight neighbors (adjacent cells).
|
7
|
+
A cell is either occupied (by an organism) or not.
|
8
|
+
The rules for deriving a generation from the previous one are these:
|
9
|
+
|
10
|
+
Survival
|
11
|
+
--------
|
12
|
+
If an occupied cell has 2 or 3 neighbors, the organism survives to the next generation.
|
13
|
+
|
14
|
+
Death
|
15
|
+
-----
|
16
|
+
If an occupied cell has 0, 1, 4, 5, 6, 7, or 8 occupied neighbors, the organism dies
|
17
|
+
(0, 1: of loneliness; 4 thru 8: of overcrowding).
|
18
|
+
|
19
|
+
Birth
|
20
|
+
-----
|
21
|
+
If an unoccupied cell has 3 occupied neighbors, it becomes occupied.
|
@@ -0,0 +1,35 @@
|
|
1
|
+
require 'life'
|
2
|
+
|
3
|
+
describe Game do
|
4
|
+
it 'should have a grid' do
|
5
|
+
# given
|
6
|
+
game = Game.new(5, 5)
|
7
|
+
|
8
|
+
# then
|
9
|
+
game.grid.should be_kind_of(Grid)
|
10
|
+
end
|
11
|
+
|
12
|
+
it 'should create a cell' do
|
13
|
+
# given
|
14
|
+
game = Game.new(2, 2)
|
15
|
+
expected_grid = Grid.from_string( 'X. ..' )
|
16
|
+
|
17
|
+
# when
|
18
|
+
game.create_at(0, 0)
|
19
|
+
|
20
|
+
# then
|
21
|
+
game.grid.should == expected_grid
|
22
|
+
end
|
23
|
+
|
24
|
+
it 'should destroy a cell' do
|
25
|
+
# given
|
26
|
+
game = Game.new(2,2)
|
27
|
+
game.grid = Grid.from_string('X. ..')
|
28
|
+
|
29
|
+
# when
|
30
|
+
game.destroy_at(0,0)
|
31
|
+
|
32
|
+
# then
|
33
|
+
game.grid.should == Grid.from_string('.. ..')
|
34
|
+
end
|
35
|
+
end
|
@@ -0,0 +1,66 @@
|
|
1
|
+
describe Grid do
|
2
|
+
it 'should be empty when created' do
|
3
|
+
# given
|
4
|
+
expected_contents = [
|
5
|
+
[0, 0, 0],
|
6
|
+
[0, 0, 0]
|
7
|
+
]
|
8
|
+
grid = Grid.new(2, 3)
|
9
|
+
|
10
|
+
# when
|
11
|
+
contents = grid.contents
|
12
|
+
|
13
|
+
# then
|
14
|
+
contents.should == expected_contents
|
15
|
+
end
|
16
|
+
|
17
|
+
it 'should compare equal based on its contents' do
|
18
|
+
# given
|
19
|
+
grid1 = Grid.new(2, 3)
|
20
|
+
grid2 = Grid.new(2, 3)
|
21
|
+
|
22
|
+
# then
|
23
|
+
grid1.should == grid2
|
24
|
+
end
|
25
|
+
|
26
|
+
it 'should be able to replace its contents' do
|
27
|
+
# given
|
28
|
+
grid = Grid.new(2,2)
|
29
|
+
new_contents = [[0,1,0], [1,0,1]]
|
30
|
+
|
31
|
+
# when
|
32
|
+
grid.contents = new_contents
|
33
|
+
|
34
|
+
# then
|
35
|
+
grid.contents.should == new_contents
|
36
|
+
grid.rows.should == 2
|
37
|
+
grid.columns.should == 3
|
38
|
+
end
|
39
|
+
|
40
|
+
it 'should add an organism' do
|
41
|
+
# given
|
42
|
+
grid = Grid.new(2, 2)
|
43
|
+
expected = Grid.new(2, 2)
|
44
|
+
expected.contents = [[1,0],[0,0]]
|
45
|
+
|
46
|
+
# when
|
47
|
+
grid.create_at(0,0)
|
48
|
+
|
49
|
+
# then
|
50
|
+
grid.should == expected
|
51
|
+
end
|
52
|
+
|
53
|
+
it 'should create itself from a string' do
|
54
|
+
# given
|
55
|
+
expected = Grid.new 3, 3
|
56
|
+
expected.create_at(0,0)
|
57
|
+
expected.create_at(1,0)
|
58
|
+
expected.create_at(2,2)
|
59
|
+
|
60
|
+
# when
|
61
|
+
actual = Grid.from_string "X.. X.. ..X"
|
62
|
+
|
63
|
+
# then
|
64
|
+
actual.should == expected
|
65
|
+
end
|
66
|
+
end
|
@@ -0,0 +1,21 @@
|
|
1
|
+
Story: cells with less than two neighbours die
|
2
|
+
|
3
|
+
As a game producer
|
4
|
+
I want cells with less than two neighbours to die
|
5
|
+
So that I can illustrate how the game works to people with money
|
6
|
+
|
7
|
+
Scenario: cells with zero or one neighbour die
|
8
|
+
|
9
|
+
Given the grid looks like
|
10
|
+
........
|
11
|
+
.XX.XX..
|
12
|
+
.XX.....
|
13
|
+
....X...
|
14
|
+
........
|
15
|
+
When the next step occurs
|
16
|
+
Then the grid should look like
|
17
|
+
........
|
18
|
+
.XX.....
|
19
|
+
.XX.....
|
20
|
+
........
|
21
|
+
........
|
data/examples/stories/game-of-life/behaviour/stories/CellsWithMoreThanThreeNeighboursDie.story
ADDED
@@ -0,0 +1,21 @@
|
|
1
|
+
Story: cells with more than three neighbours die
|
2
|
+
|
3
|
+
As a game producer
|
4
|
+
I want cells with more than three neighbours to die
|
5
|
+
So that I can show the people with money how we are getting on
|
6
|
+
|
7
|
+
Scenario: blink
|
8
|
+
|
9
|
+
Given the grid looks like
|
10
|
+
.....
|
11
|
+
...XX
|
12
|
+
...XX
|
13
|
+
.XX..
|
14
|
+
.XX..
|
15
|
+
When the next step occurs
|
16
|
+
Then the grid should look like
|
17
|
+
.....
|
18
|
+
...XX
|
19
|
+
....X
|
20
|
+
.X...
|
21
|
+
.XX..
|
data/examples/stories/game-of-life/behaviour/stories/EmptySpacesWithThreeNeighboursCreateACell.story
ADDED
@@ -0,0 +1,42 @@
|
|
1
|
+
Story: Empty spaces with three neighbours create a cell
|
2
|
+
|
3
|
+
As a game producer
|
4
|
+
I want empty cells with three neighbours to die
|
5
|
+
So that I have a minimum feature set to ship
|
6
|
+
|
7
|
+
Scenario: the glider
|
8
|
+
|
9
|
+
Given the grid looks like
|
10
|
+
...X..
|
11
|
+
..X...
|
12
|
+
..XXX.
|
13
|
+
......
|
14
|
+
......
|
15
|
+
When the next step occurs
|
16
|
+
Then the grid should look like
|
17
|
+
......
|
18
|
+
..X.X.
|
19
|
+
..XX..
|
20
|
+
...X..
|
21
|
+
......
|
22
|
+
When the next step occurs
|
23
|
+
Then the grid should look like
|
24
|
+
......
|
25
|
+
..X...
|
26
|
+
..X.X.
|
27
|
+
..XX..
|
28
|
+
......
|
29
|
+
When the next step occurs
|
30
|
+
Then the grid should look like
|
31
|
+
......
|
32
|
+
...X..
|
33
|
+
.XX...
|
34
|
+
..XX..
|
35
|
+
......
|
36
|
+
When the next step occurs
|
37
|
+
Then the grid should look like
|
38
|
+
......
|
39
|
+
..X...
|
40
|
+
.X....
|
41
|
+
.XXX..
|
42
|
+
......
|