rspec 0.0.10 → 0.1.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (395) hide show
  1. data/CHANGES +8 -0
  2. data/README +20 -0
  3. data/Rakefile.rb +122 -0
  4. data/lib/rspec.rb +9 -0
  5. data/lib/spec.rb +4 -29
  6. data/lib/spec/context.rb +61 -0
  7. data/lib/spec/{mocks/errors.rb → exceptions.rb} +5 -4
  8. data/lib/spec/expectations.rb +61 -50
  9. data/lib/spec/mock.rb +104 -0
  10. data/lib/spec/text_runner.rb +84 -0
  11. metadata +48 -452
  12. data/.autotest +0 -3
  13. data/.gitignore +0 -7
  14. data/History.txt +0 -1104
  15. data/MIT-LICENSE +0 -20
  16. data/Manifest.txt +0 -387
  17. data/README.txt +0 -36
  18. data/Rakefile +0 -88
  19. data/TODO +0 -1
  20. data/bin/autospec +0 -3
  21. data/bin/spec +0 -4
  22. data/bin/spec_translator +0 -8
  23. data/examples/pure/autogenerated_docstrings_example.rb +0 -19
  24. data/examples/pure/before_and_after_example.rb +0 -40
  25. data/examples/pure/behave_as_example.rb +0 -45
  26. data/examples/pure/custom_expectation_matchers.rb +0 -54
  27. data/examples/pure/custom_formatter.rb +0 -12
  28. data/examples/pure/dynamic_spec.rb +0 -9
  29. data/examples/pure/file_accessor.rb +0 -19
  30. data/examples/pure/file_accessor_spec.rb +0 -38
  31. data/examples/pure/greeter_spec.rb +0 -31
  32. data/examples/pure/helper_method_example.rb +0 -14
  33. data/examples/pure/io_processor.rb +0 -8
  34. data/examples/pure/io_processor_spec.rb +0 -21
  35. data/examples/pure/legacy_spec.rb +0 -11
  36. data/examples/pure/mocking_example.rb +0 -27
  37. data/examples/pure/multi_threaded_behaviour_runner.rb +0 -28
  38. data/examples/pure/nested_classes_example.rb +0 -36
  39. data/examples/pure/partial_mock_example.rb +0 -29
  40. data/examples/pure/pending_example.rb +0 -20
  41. data/examples/pure/predicate_example.rb +0 -27
  42. data/examples/pure/priority.txt +0 -1
  43. data/examples/pure/shared_example_group_example.rb +0 -81
  44. data/examples/pure/shared_stack_examples.rb +0 -38
  45. data/examples/pure/spec_helper.rb +0 -3
  46. data/examples/pure/stack.rb +0 -36
  47. data/examples/pure/stack_spec.rb +0 -63
  48. data/examples/pure/stack_spec_with_nested_example_groups.rb +0 -67
  49. data/examples/pure/stubbing_example.rb +0 -69
  50. data/examples/stories/adder.rb +0 -13
  51. data/examples/stories/addition +0 -34
  52. data/examples/stories/addition.rb +0 -9
  53. data/examples/stories/calculator.rb +0 -65
  54. data/examples/stories/game-of-life/.loadpath +0 -5
  55. data/examples/stories/game-of-life/README.txt +0 -21
  56. data/examples/stories/game-of-life/behaviour/everything.rb +0 -6
  57. data/examples/stories/game-of-life/behaviour/examples/examples.rb +0 -3
  58. data/examples/stories/game-of-life/behaviour/examples/game_behaviour.rb +0 -35
  59. data/examples/stories/game-of-life/behaviour/examples/grid_behaviour.rb +0 -66
  60. data/examples/stories/game-of-life/behaviour/stories/CellsWithLessThanTwoNeighboursDie.story +0 -21
  61. data/examples/stories/game-of-life/behaviour/stories/CellsWithMoreThanThreeNeighboursDie.story +0 -21
  62. data/examples/stories/game-of-life/behaviour/stories/EmptySpacesWithThreeNeighboursCreateACell.story +0 -42
  63. data/examples/stories/game-of-life/behaviour/stories/ICanCreateACell.story +0 -42
  64. data/examples/stories/game-of-life/behaviour/stories/ICanKillACell.story +0 -17
  65. data/examples/stories/game-of-life/behaviour/stories/TheGridWraps.story +0 -53
  66. data/examples/stories/game-of-life/behaviour/stories/create_a_cell.rb +0 -52
  67. data/examples/stories/game-of-life/behaviour/stories/helper.rb +0 -6
  68. data/examples/stories/game-of-life/behaviour/stories/kill_a_cell.rb +0 -26
  69. data/examples/stories/game-of-life/behaviour/stories/steps.rb +0 -5
  70. data/examples/stories/game-of-life/behaviour/stories/stories.rb +0 -3
  71. data/examples/stories/game-of-life/behaviour/stories/stories.txt +0 -22
  72. data/examples/stories/game-of-life/life.rb +0 -3
  73. data/examples/stories/game-of-life/life/game.rb +0 -23
  74. data/examples/stories/game-of-life/life/grid.rb +0 -43
  75. data/examples/stories/helper.rb +0 -9
  76. data/examples/stories/steps/addition_steps.rb +0 -18
  77. data/failing_examples/README.txt +0 -7
  78. data/failing_examples/diffing_spec.rb +0 -36
  79. data/failing_examples/failing_autogenerated_docstrings_example.rb +0 -19
  80. data/failing_examples/failure_in_setup.rb +0 -10
  81. data/failing_examples/failure_in_teardown.rb +0 -10
  82. data/failing_examples/mocking_example.rb +0 -40
  83. data/failing_examples/mocking_with_flexmock.rb +0 -26
  84. data/failing_examples/mocking_with_mocha.rb +0 -25
  85. data/failing_examples/mocking_with_rr.rb +0 -27
  86. data/failing_examples/partial_mock_example.rb +0 -20
  87. data/failing_examples/predicate_example.rb +0 -29
  88. data/failing_examples/raising_example.rb +0 -47
  89. data/failing_examples/spec_helper.rb +0 -3
  90. data/failing_examples/syntax_error_example.rb +0 -7
  91. data/failing_examples/team_spec.rb +0 -44
  92. data/failing_examples/timeout_behaviour.rb +0 -7
  93. data/init.rb +0 -9
  94. data/lib/autotest/discover.rb +0 -3
  95. data/lib/autotest/rspec.rb +0 -72
  96. data/lib/spec/adapters.rb +0 -1
  97. data/lib/spec/adapters/ruby_engine.rb +0 -26
  98. data/lib/spec/adapters/ruby_engine/mri.rb +0 -8
  99. data/lib/spec/adapters/ruby_engine/rubinius.rb +0 -8
  100. data/lib/spec/example.rb +0 -12
  101. data/lib/spec/example/configuration.rb +0 -158
  102. data/lib/spec/example/errors.rb +0 -9
  103. data/lib/spec/example/example_group.rb +0 -17
  104. data/lib/spec/example/example_group_factory.rb +0 -64
  105. data/lib/spec/example/example_group_methods.rb +0 -440
  106. data/lib/spec/example/example_matcher.rb +0 -44
  107. data/lib/spec/example/example_methods.rb +0 -112
  108. data/lib/spec/example/module_inclusion_warnings.rb +0 -38
  109. data/lib/spec/example/module_reopening_fix.rb +0 -21
  110. data/lib/spec/example/pending.rb +0 -18
  111. data/lib/spec/example/shared_example_group.rb +0 -58
  112. data/lib/spec/expectations/differs/default.rb +0 -66
  113. data/lib/spec/expectations/errors.rb +0 -12
  114. data/lib/spec/expectations/extensions.rb +0 -2
  115. data/lib/spec/expectations/extensions/object.rb +0 -63
  116. data/lib/spec/expectations/extensions/string_and_symbol.rb +0 -17
  117. data/lib/spec/expectations/handler.rb +0 -62
  118. data/lib/spec/extensions.rb +0 -4
  119. data/lib/spec/extensions/class.rb +0 -24
  120. data/lib/spec/extensions/main.rb +0 -102
  121. data/lib/spec/extensions/metaclass.rb +0 -7
  122. data/lib/spec/extensions/object.rb +0 -6
  123. data/lib/spec/interop/test.rb +0 -12
  124. data/lib/spec/interop/test/unit/autorunner.rb +0 -6
  125. data/lib/spec/interop/test/unit/testcase.rb +0 -61
  126. data/lib/spec/interop/test/unit/testresult.rb +0 -6
  127. data/lib/spec/interop/test/unit/testsuite_adapter.rb +0 -34
  128. data/lib/spec/interop/test/unit/ui/console/testrunner.rb +0 -61
  129. data/lib/spec/matchers.rb +0 -156
  130. data/lib/spec/matchers/be.rb +0 -224
  131. data/lib/spec/matchers/be_close.rb +0 -37
  132. data/lib/spec/matchers/change.rb +0 -148
  133. data/lib/spec/matchers/eql.rb +0 -43
  134. data/lib/spec/matchers/equal.rb +0 -43
  135. data/lib/spec/matchers/exist.rb +0 -17
  136. data/lib/spec/matchers/has.rb +0 -34
  137. data/lib/spec/matchers/have.rb +0 -149
  138. data/lib/spec/matchers/include.rb +0 -70
  139. data/lib/spec/matchers/match.rb +0 -41
  140. data/lib/spec/matchers/operator_matcher.rb +0 -73
  141. data/lib/spec/matchers/raise_error.rb +0 -132
  142. data/lib/spec/matchers/respond_to.rb +0 -45
  143. data/lib/spec/matchers/satisfy.rb +0 -47
  144. data/lib/spec/matchers/simple_matcher.rb +0 -132
  145. data/lib/spec/matchers/throw_symbol.rb +0 -74
  146. data/lib/spec/mocks.rb +0 -211
  147. data/lib/spec/mocks/argument_constraint_matchers.rb +0 -31
  148. data/lib/spec/mocks/argument_expectation.rb +0 -216
  149. data/lib/spec/mocks/error_generator.rb +0 -84
  150. data/lib/spec/mocks/extensions.rb +0 -1
  151. data/lib/spec/mocks/extensions/object.rb +0 -3
  152. data/lib/spec/mocks/framework.rb +0 -15
  153. data/lib/spec/mocks/message_expectation.rb +0 -290
  154. data/lib/spec/mocks/methods.rb +0 -39
  155. data/lib/spec/mocks/mock.rb +0 -56
  156. data/lib/spec/mocks/order_group.rb +0 -29
  157. data/lib/spec/mocks/proxy.rb +0 -184
  158. data/lib/spec/mocks/space.rb +0 -28
  159. data/lib/spec/mocks/spec_methods.rb +0 -38
  160. data/lib/spec/rake/spectask.rb +0 -227
  161. data/lib/spec/rake/verify_rcov.rb +0 -52
  162. data/lib/spec/runner.rb +0 -201
  163. data/lib/spec/runner/backtrace_tweaker.rb +0 -57
  164. data/lib/spec/runner/class_and_arguments_parser.rb +0 -16
  165. data/lib/spec/runner/command_line.rb +0 -28
  166. data/lib/spec/runner/drb_command_line.rb +0 -20
  167. data/lib/spec/runner/example_group_runner.rb +0 -59
  168. data/lib/spec/runner/formatter/base_formatter.rb +0 -77
  169. data/lib/spec/runner/formatter/base_text_formatter.rb +0 -130
  170. data/lib/spec/runner/formatter/failing_example_groups_formatter.rb +0 -27
  171. data/lib/spec/runner/formatter/failing_examples_formatter.rb +0 -20
  172. data/lib/spec/runner/formatter/html_formatter.rb +0 -337
  173. data/lib/spec/runner/formatter/nested_text_formatter.rb +0 -65
  174. data/lib/spec/runner/formatter/profile_formatter.rb +0 -51
  175. data/lib/spec/runner/formatter/progress_bar_formatter.rb +0 -34
  176. data/lib/spec/runner/formatter/snippet_extractor.rb +0 -52
  177. data/lib/spec/runner/formatter/specdoc_formatter.rb +0 -39
  178. data/lib/spec/runner/formatter/story/html_formatter.rb +0 -161
  179. data/lib/spec/runner/formatter/story/plain_text_formatter.rb +0 -188
  180. data/lib/spec/runner/formatter/text_mate_formatter.rb +0 -16
  181. data/lib/spec/runner/heckle_runner.rb +0 -72
  182. data/lib/spec/runner/heckle_runner_unsupported.rb +0 -10
  183. data/lib/spec/runner/option_parser.rb +0 -203
  184. data/lib/spec/runner/options.rb +0 -309
  185. data/lib/spec/runner/reporter.rb +0 -147
  186. data/lib/spec/runner/spec_parser.rb +0 -71
  187. data/lib/spec/story.rb +0 -10
  188. data/lib/spec/story/extensions.rb +0 -3
  189. data/lib/spec/story/extensions/main.rb +0 -86
  190. data/lib/spec/story/extensions/regexp.rb +0 -9
  191. data/lib/spec/story/extensions/string.rb +0 -9
  192. data/lib/spec/story/given_scenario.rb +0 -14
  193. data/lib/spec/story/runner.rb +0 -60
  194. data/lib/spec/story/runner/plain_text_story_runner.rb +0 -48
  195. data/lib/spec/story/runner/scenario_collector.rb +0 -18
  196. data/lib/spec/story/runner/scenario_runner.rb +0 -54
  197. data/lib/spec/story/runner/story_mediator.rb +0 -137
  198. data/lib/spec/story/runner/story_parser.rb +0 -247
  199. data/lib/spec/story/runner/story_runner.rb +0 -70
  200. data/lib/spec/story/scenario.rb +0 -14
  201. data/lib/spec/story/step.rb +0 -70
  202. data/lib/spec/story/step_group.rb +0 -89
  203. data/lib/spec/story/step_mother.rb +0 -37
  204. data/lib/spec/story/story.rb +0 -39
  205. data/lib/spec/story/world.rb +0 -128
  206. data/lib/spec/translator.rb +0 -114
  207. data/lib/spec/version.rb +0 -13
  208. data/plugins/mock_frameworks/flexmock.rb +0 -23
  209. data/plugins/mock_frameworks/mocha.rb +0 -19
  210. data/plugins/mock_frameworks/rr.rb +0 -21
  211. data/plugins/mock_frameworks/rspec.rb +0 -20
  212. data/rake_tasks/examples.rake +0 -7
  213. data/rake_tasks/examples_with_rcov.rake +0 -9
  214. data/rake_tasks/failing_examples_with_html.rake +0 -9
  215. data/rake_tasks/verify_rcov.rake +0 -7
  216. data/spec/README.jruby +0 -15
  217. data/spec/autotest/discover_spec.rb +0 -19
  218. data/spec/autotest/rspec_spec.rb +0 -206
  219. data/spec/autotest_helper.rb +0 -6
  220. data/spec/autotest_matchers.rb +0 -47
  221. data/spec/rspec_suite.rb +0 -7
  222. data/spec/ruby_forker.rb +0 -13
  223. data/spec/spec.opts +0 -6
  224. data/spec/spec/adapters/ruby_engine_spec.rb +0 -16
  225. data/spec/spec/example/configuration_spec.rb +0 -282
  226. data/spec/spec/example/example_group/described_module_spec.rb +0 -20
  227. data/spec/spec/example/example_group/warning_messages_spec.rb +0 -76
  228. data/spec/spec/example/example_group_class_definition_spec.rb +0 -48
  229. data/spec/spec/example/example_group_factory_spec.rb +0 -144
  230. data/spec/spec/example/example_group_methods_spec.rb +0 -572
  231. data/spec/spec/example/example_group_spec.rb +0 -723
  232. data/spec/spec/example/example_matcher_spec.rb +0 -96
  233. data/spec/spec/example/example_methods_spec.rb +0 -126
  234. data/spec/spec/example/example_runner_spec.rb +0 -194
  235. data/spec/spec/example/example_spec.rb +0 -53
  236. data/spec/spec/example/nested_example_group_spec.rb +0 -71
  237. data/spec/spec/example/pending_module_spec.rb +0 -42
  238. data/spec/spec/example/predicate_matcher_spec.rb +0 -21
  239. data/spec/spec/example/shared_example_group_spec.rb +0 -265
  240. data/spec/spec/example/subclassing_example_group_spec.rb +0 -25
  241. data/spec/spec/expectations/differs/default_spec.rb +0 -127
  242. data/spec/spec/expectations/extensions/object_spec.rb +0 -107
  243. data/spec/spec/expectations/fail_with_spec.rb +0 -71
  244. data/spec/spec/extensions/main_spec.rb +0 -76
  245. data/spec/spec/interop/test/unit/resources/spec_that_fails.rb +0 -10
  246. data/spec/spec/interop/test/unit/resources/spec_that_passes.rb +0 -10
  247. data/spec/spec/interop/test/unit/resources/spec_with_errors.rb +0 -10
  248. data/spec/spec/interop/test/unit/resources/test_case_that_fails.rb +0 -10
  249. data/spec/spec/interop/test/unit/resources/test_case_that_passes.rb +0 -10
  250. data/spec/spec/interop/test/unit/resources/test_case_with_errors.rb +0 -10
  251. data/spec/spec/interop/test/unit/resources/testsuite_adapter_spec_with_test_unit.rb +0 -38
  252. data/spec/spec/interop/test/unit/spec_spec.rb +0 -45
  253. data/spec/spec/interop/test/unit/test_unit_spec_helper.rb +0 -14
  254. data/spec/spec/interop/test/unit/testcase_spec.rb +0 -45
  255. data/spec/spec/interop/test/unit/testsuite_adapter_spec.rb +0 -9
  256. data/spec/spec/matchers/be_close_spec.rb +0 -39
  257. data/spec/spec/matchers/be_spec.rb +0 -248
  258. data/spec/spec/matchers/change_spec.rb +0 -317
  259. data/spec/spec/matchers/description_generation_spec.rb +0 -153
  260. data/spec/spec/matchers/eql_spec.rb +0 -28
  261. data/spec/spec/matchers/equal_spec.rb +0 -28
  262. data/spec/spec/matchers/exist_spec.rb +0 -57
  263. data/spec/spec/matchers/handler_spec.rb +0 -150
  264. data/spec/spec/matchers/has_spec.rb +0 -53
  265. data/spec/spec/matchers/have_spec.rb +0 -293
  266. data/spec/spec/matchers/include_spec.rb +0 -45
  267. data/spec/spec/matchers/match_spec.rb +0 -37
  268. data/spec/spec/matchers/matcher_methods_spec.rb +0 -78
  269. data/spec/spec/matchers/mock_constraint_matchers_spec.rb +0 -24
  270. data/spec/spec/matchers/operator_matcher_spec.rb +0 -168
  271. data/spec/spec/matchers/raise_error_spec.rb +0 -315
  272. data/spec/spec/matchers/respond_to_spec.rb +0 -54
  273. data/spec/spec/matchers/satisfy_spec.rb +0 -36
  274. data/spec/spec/matchers/simple_matcher_spec.rb +0 -93
  275. data/spec/spec/matchers/throw_symbol_spec.rb +0 -54
  276. data/spec/spec/mocks/any_number_of_times_spec.rb +0 -29
  277. data/spec/spec/mocks/argument_expectation_spec.rb +0 -23
  278. data/spec/spec/mocks/at_least_spec.rb +0 -97
  279. data/spec/spec/mocks/at_most_spec.rb +0 -93
  280. data/spec/spec/mocks/bug_report_10260_spec.rb +0 -8
  281. data/spec/spec/mocks/bug_report_10263_spec.rb +0 -24
  282. data/spec/spec/mocks/bug_report_11545_spec.rb +0 -33
  283. data/spec/spec/mocks/bug_report_15719_spec.rb +0 -30
  284. data/spec/spec/mocks/bug_report_7611_spec.rb +0 -19
  285. data/spec/spec/mocks/bug_report_7805_spec.rb +0 -22
  286. data/spec/spec/mocks/bug_report_8165_spec.rb +0 -31
  287. data/spec/spec/mocks/bug_report_8302_spec.rb +0 -26
  288. data/spec/spec/mocks/failing_mock_argument_constraints_spec.rb +0 -130
  289. data/spec/spec/mocks/hash_including_matcher_spec.rb +0 -32
  290. data/spec/spec/mocks/mock_ordering_spec.rb +0 -84
  291. data/spec/spec/mocks/mock_space_spec.rb +0 -54
  292. data/spec/spec/mocks/mock_spec.rb +0 -494
  293. data/spec/spec/mocks/multiple_return_value_spec.rb +0 -113
  294. data/spec/spec/mocks/null_object_mock_spec.rb +0 -40
  295. data/spec/spec/mocks/once_counts_spec.rb +0 -53
  296. data/spec/spec/mocks/options_hash_spec.rb +0 -45
  297. data/spec/spec/mocks/partial_mock_spec.rb +0 -142
  298. data/spec/spec/mocks/partial_mock_using_mocks_directly_spec.rb +0 -66
  299. data/spec/spec/mocks/passing_mock_argument_constraints_spec.rb +0 -175
  300. data/spec/spec/mocks/precise_counts_spec.rb +0 -52
  301. data/spec/spec/mocks/record_messages_spec.rb +0 -26
  302. data/spec/spec/mocks/stub_spec.rb +0 -181
  303. data/spec/spec/mocks/twice_counts_spec.rb +0 -67
  304. data/spec/spec/package/bin_spec_spec.rb +0 -14
  305. data/spec/spec/runner/class_and_argument_parser_spec.rb +0 -23
  306. data/spec/spec/runner/command_line_spec.rb +0 -147
  307. data/spec/spec/runner/drb_command_line_spec.rb +0 -92
  308. data/spec/spec/runner/empty_file.txt +0 -0
  309. data/spec/spec/runner/examples.txt +0 -2
  310. data/spec/spec/runner/execution_context_spec.rb +0 -37
  311. data/spec/spec/runner/failed.txt +0 -3
  312. data/spec/spec/runner/formatter/failing_example_groups_formatter_spec.rb +0 -45
  313. data/spec/spec/runner/formatter/failing_examples_formatter_spec.rb +0 -33
  314. data/spec/spec/runner/formatter/html_formatted-1.8.4.html +0 -365
  315. data/spec/spec/runner/formatter/html_formatted-1.8.5-jruby.html +0 -387
  316. data/spec/spec/runner/formatter/html_formatted-1.8.5.html +0 -371
  317. data/spec/spec/runner/formatter/html_formatted-1.8.6-jruby.html +0 -381
  318. data/spec/spec/runner/formatter/html_formatted-1.8.6.html +0 -370
  319. data/spec/spec/runner/formatter/html_formatter_spec.rb +0 -63
  320. data/spec/spec/runner/formatter/nested_text_formatter_spec.rb +0 -333
  321. data/spec/spec/runner/formatter/profile_formatter_spec.rb +0 -65
  322. data/spec/spec/runner/formatter/progress_bar_formatter_spec.rb +0 -137
  323. data/spec/spec/runner/formatter/snippet_extractor_spec.rb +0 -18
  324. data/spec/spec/runner/formatter/spec_mate_formatter_spec.rb +0 -103
  325. data/spec/spec/runner/formatter/specdoc_formatter_spec.rb +0 -158
  326. data/spec/spec/runner/formatter/story/html_formatter_spec.rb +0 -87
  327. data/spec/spec/runner/formatter/story/plain_text_formatter_spec.rb +0 -548
  328. data/spec/spec/runner/formatter/text_mate_formatted-1.8.4.html +0 -365
  329. data/spec/spec/runner/formatter/text_mate_formatted-1.8.6.html +0 -370
  330. data/spec/spec/runner/heckle_runner_spec.rb +0 -78
  331. data/spec/spec/runner/heckler_spec.rb +0 -13
  332. data/spec/spec/runner/noisy_backtrace_tweaker_spec.rb +0 -45
  333. data/spec/spec/runner/option_parser_spec.rb +0 -394
  334. data/spec/spec/runner/options_spec.rb +0 -450
  335. data/spec/spec/runner/output_one_time_fixture.rb +0 -7
  336. data/spec/spec/runner/output_one_time_fixture_runner.rb +0 -8
  337. data/spec/spec/runner/output_one_time_spec.rb +0 -16
  338. data/spec/spec/runner/quiet_backtrace_tweaker_spec.rb +0 -56
  339. data/spec/spec/runner/reporter_spec.rb +0 -192
  340. data/spec/spec/runner/resources/a_bar.rb +0 -0
  341. data/spec/spec/runner/resources/a_foo.rb +0 -0
  342. data/spec/spec/runner/resources/a_spec.rb +0 -1
  343. data/spec/spec/runner/spec.opts +0 -2
  344. data/spec/spec/runner/spec_drb.opts +0 -1
  345. data/spec/spec/runner/spec_parser/spec_parser_fixture.rb +0 -70
  346. data/spec/spec/runner/spec_parser_spec.rb +0 -85
  347. data/spec/spec/runner/spec_spaced.opts +0 -2
  348. data/spec/spec/runner_spec.rb +0 -11
  349. data/spec/spec/spec_classes.rb +0 -133
  350. data/spec/spec/story/builders.rb +0 -46
  351. data/spec/spec/story/extensions/main_spec.rb +0 -161
  352. data/spec/spec/story/extensions_spec.rb +0 -14
  353. data/spec/spec/story/given_scenario_spec.rb +0 -27
  354. data/spec/spec/story/runner/plain_text_story_runner_spec.rb +0 -93
  355. data/spec/spec/story/runner/scenario_collector_spec.rb +0 -27
  356. data/spec/spec/story/runner/scenario_runner_spec.rb +0 -214
  357. data/spec/spec/story/runner/story_mediator_spec.rb +0 -143
  358. data/spec/spec/story/runner/story_parser_spec.rb +0 -401
  359. data/spec/spec/story/runner/story_runner_spec.rb +0 -294
  360. data/spec/spec/story/runner_spec.rb +0 -93
  361. data/spec/spec/story/scenario_spec.rb +0 -20
  362. data/spec/spec/story/step_group_spec.rb +0 -157
  363. data/spec/spec/story/step_mother_spec.rb +0 -72
  364. data/spec/spec/story/step_spec.rb +0 -250
  365. data/spec/spec/story/story_helper.rb +0 -2
  366. data/spec/spec/story/story_spec.rb +0 -86
  367. data/spec/spec/story/world_spec.rb +0 -423
  368. data/spec/spec/translator_spec.rb +0 -265
  369. data/spec/spec_helper.rb +0 -103
  370. data/stories/all.rb +0 -5
  371. data/stories/example_groups/autogenerated_docstrings +0 -45
  372. data/stories/example_groups/example_group_with_should_methods +0 -17
  373. data/stories/example_groups/nested_groups +0 -17
  374. data/stories/example_groups/output +0 -25
  375. data/stories/example_groups/stories.rb +0 -7
  376. data/stories/helper.rb +0 -6
  377. data/stories/interop/examples_and_tests_together +0 -30
  378. data/stories/interop/stories.rb +0 -7
  379. data/stories/interop/test_case_with_should_methods +0 -17
  380. data/stories/mock_framework_integration/stories.rb +0 -7
  381. data/stories/mock_framework_integration/use_flexmock.story +0 -9
  382. data/stories/pending_stories/README +0 -3
  383. data/stories/resources/helpers/cmdline.rb +0 -9
  384. data/stories/resources/helpers/story_helper.rb +0 -16
  385. data/stories/resources/matchers/smart_match.rb +0 -37
  386. data/stories/resources/spec/example_group_with_should_methods.rb +0 -12
  387. data/stories/resources/spec/simple_spec.rb +0 -8
  388. data/stories/resources/spec/spec_with_flexmock.rb +0 -18
  389. data/stories/resources/steps/running_rspec.rb +0 -50
  390. data/stories/resources/stories/failing_story.rb +0 -15
  391. data/stories/resources/test/spec_and_test_together.rb +0 -57
  392. data/stories/resources/test/test_case_with_should_methods.rb +0 -30
  393. data/stories/stories/multiline_steps.story +0 -23
  394. data/stories/stories/steps/multiline_steps.rb +0 -13
  395. data/stories/stories/stories.rb +0 -6
data/CHANGES ADDED
@@ -0,0 +1,8 @@
1
+ = RSpec Changelog
2
+
3
+ == Version 0.1.0
4
+
5
+ This is the first preview release of RSpec, a Behaviour-Driven Development library for Ruby
6
+
7
+ * Added Rake script with tasks for gems, rdoc etc.
8
+ * Added an XForge task to make release go easier.
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.
@@ -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
@@ -0,0 +1,9 @@
1
+ class RSpec
2
+
3
+ def initialize(args)
4
+ args.each do |file|
5
+ require file
6
+ end
7
+ end
8
+
9
+ end
@@ -1,30 +1,5 @@
1
- require 'spec/matchers'
1
+ require 'spec/context'
2
2
  require 'spec/expectations'
3
- require 'spec/example'
4
- require 'spec/extensions'
5
- require 'spec/runner'
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'
@@ -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 Mocks
3
- class MockExpectationError < StandardError
2
+ module Exceptions
3
+ class ExpectationNotMetError < StandardError
4
4
  end
5
5
 
6
- class AmbiguousReturnError < StandardError
6
+ class MockExpectationError < StandardError
7
7
  end
8
+
9
+
8
10
  end
9
11
  end
10
-
@@ -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
- 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))
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
@@ -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