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,56 @@
|
|
1
|
+
require 'spec/matchers'
|
2
|
+
require 'spec/expectations/errors'
|
3
|
+
require 'spec/expectations/extensions'
|
4
|
+
require 'spec/expectations/handler'
|
5
|
+
|
6
|
+
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
|
+
module Expectations
|
33
|
+
class << self
|
34
|
+
attr_accessor :differ
|
35
|
+
|
36
|
+
# raises a Spec::Expectations::ExpectationNotMetError with message
|
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))
|
53
|
+
end
|
54
|
+
end
|
55
|
+
end
|
56
|
+
end
|
@@ -0,0 +1,24 @@
|
|
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
|
@@ -0,0 +1,87 @@
|
|
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::ExampleGroupFactory#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] = File.expand_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
|
+
end
|
84
|
+
end
|
85
|
+
end
|
86
|
+
|
87
|
+
include Spec::Extensions::Main
|
@@ -0,0 +1,71 @@
|
|
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, options={}, &implementation)
|
47
|
+
@_defined_description = defined_description
|
48
|
+
|
49
|
+
# TODO - examples fail in rspec-rails if we remove "|| pending_implementation"
|
50
|
+
# - find a way to fail without it in rspec's code examples
|
51
|
+
@_implementation = implementation || pending_implementation
|
52
|
+
|
53
|
+
@_result = ::Test::Unit::TestResult.new
|
54
|
+
# @method_name is important to set here because it "complies" with Test::Unit's interface.
|
55
|
+
# Some Test::Unit extensions depend on @method_name being present.
|
56
|
+
@method_name = @_defined_description
|
57
|
+
end
|
58
|
+
|
59
|
+
def run(ignore_this_argument=nil)
|
60
|
+
super()
|
61
|
+
end
|
62
|
+
|
63
|
+
private
|
64
|
+
|
65
|
+
def pending_implementation
|
66
|
+
error = Spec::Example::NotYetImplementedError.new(caller)
|
67
|
+
lambda { raise(error) }
|
68
|
+
end
|
69
|
+
end
|
70
|
+
end
|
71
|
+
end
|
@@ -0,0 +1,34 @@
|
|
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
|
+
|
@@ -0,0 +1,61 @@
|
|
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
|
@@ -0,0 +1,12 @@
|
|
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
|
@@ -0,0 +1,221 @@
|
|
1
|
+
module Spec
|
2
|
+
module Matchers
|
3
|
+
|
4
|
+
class Be #:nodoc:
|
5
|
+
def initialize(*args)
|
6
|
+
if args.empty?
|
7
|
+
@expected = :satisfy_if
|
8
|
+
else
|
9
|
+
@expected = parse_expected(args.shift)
|
10
|
+
end
|
11
|
+
@args = args
|
12
|
+
@comparison = ""
|
13
|
+
end
|
14
|
+
|
15
|
+
def matches?(given)
|
16
|
+
@given = given
|
17
|
+
if handling_predicate?
|
18
|
+
begin
|
19
|
+
return @result = given.__send__(predicate, *@args)
|
20
|
+
rescue => predicate_error
|
21
|
+
# This clause should be empty, but rcov will not report it as covered
|
22
|
+
# unless something (anything) is executed within the clause
|
23
|
+
rcov_error_report = "http://eigenclass.org/hiki.rb?rcov-0.8.0"
|
24
|
+
end
|
25
|
+
|
26
|
+
begin
|
27
|
+
return @result = given.__send__(present_tense_predicate, *@args)
|
28
|
+
rescue
|
29
|
+
raise predicate_error
|
30
|
+
end
|
31
|
+
else
|
32
|
+
return match_or_compare
|
33
|
+
end
|
34
|
+
end
|
35
|
+
|
36
|
+
def failure_message
|
37
|
+
return "expected #{@comparison}#{expected}, got #{@given.inspect}" unless handling_predicate?
|
38
|
+
return "expected #{predicate}#{args_to_s} to return true, got #{@result.inspect}"
|
39
|
+
end
|
40
|
+
|
41
|
+
def negative_failure_message
|
42
|
+
return "expected not #{expected}, got #{@given.inspect}" unless handling_predicate?
|
43
|
+
return "expected #{predicate}#{args_to_s} to return false, got #{@result.inspect}"
|
44
|
+
end
|
45
|
+
|
46
|
+
def expected
|
47
|
+
return "if to be satisfied" if @expected == :satisfy_if
|
48
|
+
return true if @expected == :true
|
49
|
+
return false if @expected == :false
|
50
|
+
return "nil" if @expected == :nil
|
51
|
+
return @expected.inspect
|
52
|
+
end
|
53
|
+
|
54
|
+
def match_or_compare
|
55
|
+
return @given ? true : false if @expected == :satisfy_if
|
56
|
+
return @given == true if @expected == :true
|
57
|
+
return @given == false if @expected == :false
|
58
|
+
return @given.nil? if @expected == :nil
|
59
|
+
return @given < @expected if @less_than
|
60
|
+
return @given <= @expected if @less_than_or_equal
|
61
|
+
return @given >= @expected if @greater_than_or_equal
|
62
|
+
return @given > @expected if @greater_than
|
63
|
+
return @given == @expected if @double_equal
|
64
|
+
return @given === @expected if @triple_equal
|
65
|
+
return @given.equal?(@expected)
|
66
|
+
end
|
67
|
+
|
68
|
+
def ==(expected)
|
69
|
+
@prefix = "be "
|
70
|
+
@double_equal = true
|
71
|
+
@comparison = "== "
|
72
|
+
@expected = expected
|
73
|
+
self
|
74
|
+
end
|
75
|
+
|
76
|
+
def ===(expected)
|
77
|
+
@prefix = "be "
|
78
|
+
@triple_equal = true
|
79
|
+
@comparison = "=== "
|
80
|
+
@expected = expected
|
81
|
+
self
|
82
|
+
end
|
83
|
+
|
84
|
+
def <(expected)
|
85
|
+
@prefix = "be "
|
86
|
+
@less_than = true
|
87
|
+
@comparison = "< "
|
88
|
+
@expected = expected
|
89
|
+
self
|
90
|
+
end
|
91
|
+
|
92
|
+
def <=(expected)
|
93
|
+
@prefix = "be "
|
94
|
+
@less_than_or_equal = true
|
95
|
+
@comparison = "<= "
|
96
|
+
@expected = expected
|
97
|
+
self
|
98
|
+
end
|
99
|
+
|
100
|
+
def >=(expected)
|
101
|
+
@prefix = "be "
|
102
|
+
@greater_than_or_equal = true
|
103
|
+
@comparison = ">= "
|
104
|
+
@expected = expected
|
105
|
+
self
|
106
|
+
end
|
107
|
+
|
108
|
+
def >(expected)
|
109
|
+
@prefix = "be "
|
110
|
+
@greater_than = true
|
111
|
+
@comparison = "> "
|
112
|
+
@expected = expected
|
113
|
+
self
|
114
|
+
end
|
115
|
+
|
116
|
+
def description
|
117
|
+
"#{prefix_to_sentence}#{comparison}#{expected_to_sentence}#{args_to_sentence}"
|
118
|
+
end
|
119
|
+
|
120
|
+
private
|
121
|
+
def parse_expected(expected)
|
122
|
+
if Symbol === expected
|
123
|
+
@handling_predicate = true
|
124
|
+
["be_an_","be_a_","be_"].each do |prefix|
|
125
|
+
if expected.starts_with?(prefix)
|
126
|
+
@prefix = prefix
|
127
|
+
return "#{expected.to_s.sub(@prefix,"")}".to_sym
|
128
|
+
end
|
129
|
+
end
|
130
|
+
end
|
131
|
+
@prefix = ""
|
132
|
+
return expected
|
133
|
+
end
|
134
|
+
|
135
|
+
def handling_predicate?
|
136
|
+
return false if [:true, :false, :nil].include?(@expected)
|
137
|
+
return @handling_predicate
|
138
|
+
end
|
139
|
+
|
140
|
+
def predicate
|
141
|
+
"#{@expected.to_s}?".to_sym
|
142
|
+
end
|
143
|
+
|
144
|
+
def present_tense_predicate
|
145
|
+
"#{@expected.to_s}s?".to_sym
|
146
|
+
end
|
147
|
+
|
148
|
+
def args_to_s
|
149
|
+
return "" if @args.empty?
|
150
|
+
inspected_args = @args.collect{|a| a.inspect}
|
151
|
+
return "(#{inspected_args.join(', ')})"
|
152
|
+
end
|
153
|
+
|
154
|
+
def comparison
|
155
|
+
@comparison
|
156
|
+
end
|
157
|
+
|
158
|
+
def expected_to_sentence
|
159
|
+
split_words(@expected)
|
160
|
+
end
|
161
|
+
|
162
|
+
def prefix_to_sentence
|
163
|
+
split_words(@prefix)
|
164
|
+
end
|
165
|
+
|
166
|
+
def split_words(sym)
|
167
|
+
sym.to_s.gsub(/_/,' ')
|
168
|
+
end
|
169
|
+
|
170
|
+
def args_to_sentence
|
171
|
+
case @args.length
|
172
|
+
when 0
|
173
|
+
""
|
174
|
+
when 1
|
175
|
+
" #{@args[0]}"
|
176
|
+
else
|
177
|
+
" #{@args[0...-1].join(', ')} and #{@args[-1]}"
|
178
|
+
end
|
179
|
+
end
|
180
|
+
|
181
|
+
end
|
182
|
+
|
183
|
+
# :call-seq:
|
184
|
+
# should be
|
185
|
+
# should be_true
|
186
|
+
# should be_false
|
187
|
+
# should be_nil
|
188
|
+
# should be_arbitrary_predicate(*args)
|
189
|
+
# should_not be_nil
|
190
|
+
# should_not be_arbitrary_predicate(*args)
|
191
|
+
#
|
192
|
+
# Given true, false, or nil, will pass if given value is
|
193
|
+
# true, false or nil (respectively). Given no args means
|
194
|
+
# the caller should satisfy an if condition (to be or not to be).
|
195
|
+
#
|
196
|
+
# Predicates are any Ruby method that ends in a "?" and returns true or false.
|
197
|
+
# Given be_ followed by arbitrary_predicate (without the "?"), RSpec will match
|
198
|
+
# convert that into a query against the target object.
|
199
|
+
#
|
200
|
+
# The arbitrary_predicate feature will handle any predicate
|
201
|
+
# prefixed with "be_an_" (e.g. be_an_instance_of), "be_a_" (e.g. be_a_kind_of)
|
202
|
+
# or "be_" (e.g. be_empty), letting you choose the prefix that best suits the predicate.
|
203
|
+
#
|
204
|
+
# == Examples
|
205
|
+
#
|
206
|
+
# target.should be
|
207
|
+
# target.should be_true
|
208
|
+
# target.should be_false
|
209
|
+
# target.should be_nil
|
210
|
+
# target.should_not be_nil
|
211
|
+
#
|
212
|
+
# collection.should be_empty #passes if target.empty?
|
213
|
+
# "this string".should be_an_intance_of(String)
|
214
|
+
#
|
215
|
+
# target.should_not be_empty #passes unless target.empty?
|
216
|
+
# target.should_not be_old_enough(16) #passes unless target.old_enough?(16)
|
217
|
+
def be(*args)
|
218
|
+
Matchers::Be.new(*args)
|
219
|
+
end
|
220
|
+
end
|
221
|
+
end
|