rspec 0.8.2 → 0.9.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (245) hide show
  1. data/CHANGES +125 -9
  2. data/EXAMPLES.rd +50 -27
  3. data/README +14 -1
  4. data/Rakefile +95 -42
  5. data/UPGRADE +31 -0
  6. data/bin/spec +0 -1
  7. data/bin/spec_translator +6 -0
  8. data/examples/auto_spec_description_example.rb +19 -0
  9. data/examples/{setup_teardown_example.rb → before_and_after_example.rb} +6 -6
  10. data/examples/behave_as_example.rb +45 -0
  11. data/examples/custom_expectation_matchers.rb +13 -12
  12. data/examples/dynamic_spec.rb +2 -2
  13. data/examples/file_accessor_spec.rb +2 -2
  14. data/examples/greeter_spec.rb +3 -3
  15. data/examples/helper_method_example.rb +2 -2
  16. data/examples/io_processor_spec.rb +4 -4
  17. data/examples/legacy_spec.rb +10 -0
  18. data/examples/mocking_example.rb +5 -5
  19. data/examples/multi_threaded_behaviour_runner.rb +25 -0
  20. data/examples/partial_mock_example.rb +4 -4
  21. data/examples/predicate_example.rb +4 -4
  22. data/examples/priority.txt +1 -0
  23. data/examples/shared_behaviours_example.rb +31 -0
  24. data/examples/stack_spec.rb +52 -69
  25. data/examples/stubbing_example.rb +10 -10
  26. data/examples/test_case_adapter_example.rb +26 -0
  27. data/examples/test_case_spec.rb +6 -6
  28. data/lib/spec.rb +9 -4
  29. data/lib/spec/dsl.rb +10 -0
  30. data/lib/spec/dsl/behaviour.rb +189 -0
  31. data/lib/spec/dsl/behaviour_callbacks.rb +43 -0
  32. data/lib/spec/dsl/behaviour_eval.rb +170 -0
  33. data/lib/spec/dsl/behaviour_factory.rb +32 -0
  34. data/lib/spec/dsl/composite_proc_builder.rb +28 -0
  35. data/lib/spec/dsl/configuration.rb +38 -0
  36. data/lib/spec/dsl/description.rb +34 -0
  37. data/lib/spec/dsl/example.rb +114 -0
  38. data/lib/spec/dsl/example_matcher.rb +28 -0
  39. data/lib/spec/{runner/spec_should_raise_handler.rb → dsl/example_should_raise_handler.rb} +4 -4
  40. data/lib/spec/expectations.rb +0 -3
  41. data/lib/spec/expectations/differs/default.rb +0 -1
  42. data/lib/spec/expectations/extensions.rb +0 -1
  43. data/lib/spec/expectations/extensions/object.rb +10 -53
  44. data/lib/spec/expectations/handler.rb +14 -18
  45. data/lib/spec/extensions.rb +1 -0
  46. data/lib/spec/extensions/object.rb +6 -0
  47. data/lib/spec/matchers.rb +19 -21
  48. data/lib/spec/matchers/be.rb +40 -11
  49. data/lib/spec/matchers/be_close.rb +2 -2
  50. data/lib/spec/matchers/operator_matcher.rb +52 -0
  51. data/lib/spec/matchers/respond_to.rb +21 -11
  52. data/lib/spec/mocks.rb +5 -28
  53. data/lib/spec/mocks/argument_constraint_matchers.rb +12 -0
  54. data/lib/spec/mocks/argument_expectation.rb +7 -4
  55. data/lib/spec/mocks/methods.rb +11 -16
  56. data/lib/spec/mocks/mock.rb +6 -3
  57. data/lib/spec/mocks/{mock_handler.rb → proxy.rb} +4 -7
  58. data/lib/spec/mocks/space.rb +28 -0
  59. data/lib/spec/mocks/spec_methods.rb +30 -0
  60. data/lib/spec/rake/spectask.rb +23 -21
  61. data/lib/spec/rake/verify_rcov.rb +1 -0
  62. data/lib/spec/runner.rb +88 -35
  63. data/lib/spec/runner/backtrace_tweaker.rb +2 -1
  64. data/lib/spec/runner/behaviour_runner.rb +102 -0
  65. data/lib/spec/runner/command_line.rb +5 -17
  66. data/lib/spec/runner/drb_command_line.rb +2 -2
  67. data/lib/spec/runner/extensions/kernel.rb +22 -9
  68. data/lib/spec/runner/formatter.rb +4 -0
  69. data/lib/spec/runner/formatter/base_formatter.rb +63 -0
  70. data/lib/spec/runner/formatter/base_text_formatter.rb +22 -52
  71. data/lib/spec/runner/formatter/failing_behaviours_formatter.rb +25 -0
  72. data/lib/spec/runner/formatter/failing_examples_formatter.rb +22 -0
  73. data/lib/spec/runner/formatter/html_formatter.rb +74 -29
  74. data/lib/spec/runner/formatter/progress_bar_formatter.rb +6 -8
  75. data/lib/spec/runner/formatter/rdoc_formatter.rb +6 -6
  76. data/lib/spec/runner/formatter/snippet_extractor.rb +52 -0
  77. data/lib/spec/runner/formatter/specdoc_formatter.rb +6 -6
  78. data/lib/spec/runner/heckle_runner.rb +8 -7
  79. data/lib/spec/runner/option_parser.rb +136 -55
  80. data/lib/spec/runner/options.rb +26 -0
  81. data/lib/spec/runner/reporter.rb +38 -31
  82. data/lib/spec/runner/spec_parser.rb +22 -13
  83. data/lib/spec/test_case_adapter.rb +10 -0
  84. data/lib/spec/translator.rb +103 -86
  85. data/lib/spec/version.rb +7 -15
  86. data/plugins/mock_frameworks/flexmock.rb +27 -0
  87. data/plugins/mock_frameworks/mocha.rb +21 -0
  88. data/plugins/mock_frameworks/rspec.rb +18 -0
  89. data/spec/spec/dsl/behaviour_eval_spec.rb +49 -0
  90. data/spec/spec/dsl/behaviour_factory_spec.rb +30 -0
  91. data/spec/spec/dsl/behaviour_spec.rb +508 -0
  92. data/spec/spec/dsl/composite_proc_builder_spec.rb +57 -0
  93. data/spec/spec/dsl/configuration_spec.rb +43 -0
  94. data/spec/spec/dsl/description_spec.rb +51 -0
  95. data/spec/spec/dsl/example_class_spec.rb +24 -0
  96. data/spec/spec/dsl/example_instance_spec.rb +140 -0
  97. data/spec/spec/dsl/example_should_raise_spec.rb +137 -0
  98. data/spec/spec/dsl/predicate_matcher_spec.rb +21 -0
  99. data/spec/spec/dsl/shared_behaviour_spec.rb +186 -0
  100. data/spec/spec/expectations/differs/default_spec.rb +12 -12
  101. data/spec/spec/expectations/extensions/object_spec.rb +10 -10
  102. data/spec/spec/expectations/fail_with_spec.rb +20 -20
  103. data/spec/spec/matchers/be_close_spec.rb +37 -31
  104. data/spec/spec/matchers/be_spec.rb +50 -41
  105. data/spec/spec/matchers/change_spec.rb +54 -54
  106. data/spec/spec/matchers/description_generation_spec.rb +43 -31
  107. data/spec/spec/matchers/eql_spec.rb +24 -37
  108. data/spec/spec/matchers/equal_spec.rb +24 -37
  109. data/spec/spec/matchers/exist_spec.rb +48 -0
  110. data/spec/spec/matchers/handler_spec.rb +36 -23
  111. data/spec/spec/matchers/has_spec.rb +8 -8
  112. data/spec/spec/matchers/have_spec.rb +38 -38
  113. data/spec/spec/matchers/include_spec.rb +6 -6
  114. data/spec/spec/matchers/match_spec.rb +8 -8
  115. data/spec/spec/matchers/matcher_methods_spec.rb +24 -31
  116. data/spec/spec/matchers/raise_error_spec.rb +34 -34
  117. data/spec/spec/matchers/respond_to_spec.rb +32 -8
  118. data/spec/spec/matchers/satisfy_spec.rb +6 -6
  119. data/spec/spec/matchers/should_===_spec.rb +38 -0
  120. data/spec/spec/matchers/should_==_spec.rb +37 -0
  121. data/spec/spec/matchers/should_=~_spec.rb +36 -0
  122. data/spec/spec/matchers/throw_symbol_spec.rb +47 -55
  123. data/spec/spec/mocks/any_number_of_times_spec.rb +16 -21
  124. data/spec/spec/mocks/argument_expectation_spec.rb +3 -3
  125. data/spec/spec/mocks/at_least_spec.rb +30 -30
  126. data/spec/spec/mocks/at_most_spec.rb +53 -57
  127. data/spec/spec/mocks/bug_report_10260_spec.rb +8 -0
  128. data/spec/spec/mocks/bug_report_7611_spec.rb +3 -3
  129. data/spec/spec/mocks/bug_report_7805_spec.rb +3 -3
  130. data/spec/spec/mocks/bug_report_8165_spec.rb +5 -5
  131. data/spec/spec/mocks/bug_report_8302_spec.rb +5 -5
  132. data/spec/spec/mocks/failing_mock_argument_constraints_spec.rb +26 -27
  133. data/spec/spec/mocks/mock_ordering_spec.rb +19 -15
  134. data/spec/spec/mocks/mock_space_spec.rb +54 -0
  135. data/spec/spec/mocks/mock_spec.rb +111 -141
  136. data/spec/spec/mocks/multiple_return_value_spec.rb +48 -48
  137. data/spec/spec/mocks/null_object_mock_spec.rb +10 -10
  138. data/spec/spec/mocks/once_counts_spec.rb +32 -35
  139. data/spec/spec/mocks/options_hash_spec.rb +12 -10
  140. data/spec/spec/mocks/partial_mock_spec.rb +15 -15
  141. data/spec/spec/mocks/partial_mock_using_mocks_directly_spec.rb +24 -22
  142. data/spec/spec/mocks/passing_mock_argument_constraints_spec.rb +19 -19
  143. data/spec/spec/mocks/precise_counts_spec.rb +28 -32
  144. data/spec/spec/mocks/record_messages_spec.rb +10 -10
  145. data/spec/spec/mocks/stub_spec.rb +45 -45
  146. data/spec/spec/mocks/twice_counts_spec.rb +21 -21
  147. data/spec/spec/package/bin_spec_spec.rb +12 -0
  148. data/spec/spec/runner/behaviour_runner_spec.rb +114 -0
  149. data/spec/spec/runner/command_line_spec.rb +8 -8
  150. data/spec/spec/runner/context_matching_spec.rb +14 -15
  151. data/spec/spec/runner/drb_command_line_spec.rb +12 -12
  152. data/spec/spec/runner/execution_context_spec.rb +8 -29
  153. data/spec/spec/runner/extensions/kernel_spec.rb +36 -0
  154. data/spec/spec/runner/formatter/failing_behaviours_formatter_spec.rb +27 -0
  155. data/spec/spec/runner/formatter/failing_examples_formatter_spec.rb +28 -0
  156. data/spec/spec/runner/formatter/html_formatter_spec.rb +9 -8
  157. data/spec/spec/runner/formatter/progress_bar_formatter_dry_run_spec.rb +6 -6
  158. data/spec/spec/runner/formatter/progress_bar_formatter_failure_dump_spec.rb +10 -10
  159. data/spec/spec/runner/formatter/progress_bar_formatter_spec.rb +22 -27
  160. data/spec/spec/runner/formatter/rdoc_formatter_dry_run_spec.rb +6 -5
  161. data/spec/spec/runner/formatter/rdoc_formatter_spec.rb +17 -17
  162. data/spec/spec/runner/formatter/snippet_extractor_spec.rb +11 -0
  163. data/spec/spec/runner/formatter/specdoc_formatter_dry_run_spec.rb +6 -6
  164. data/spec/spec/runner/formatter/specdoc_formatter_spec.rb +17 -17
  165. data/spec/spec/runner/heckle_runner_spec.rb +21 -21
  166. data/spec/spec/runner/heckler_spec.rb +5 -5
  167. data/spec/spec/runner/noisy_backtrace_tweaker_spec.rb +12 -12
  168. data/spec/spec/runner/object_ext_spec.rb +3 -3
  169. data/spec/spec/runner/option_parser_spec.rb +171 -102
  170. data/spec/spec/runner/quiet_backtrace_tweaker_spec.rb +21 -12
  171. data/spec/spec/runner/reporter_spec.rb +106 -97
  172. data/spec/spec/runner/spec_matcher_spec.rb +46 -51
  173. data/spec/spec/runner/spec_parser_spec.rb +72 -16
  174. data/spec/spec/spec_classes.rb +12 -3
  175. data/spec/spec/translator_spec.rb +165 -36
  176. metadata +66 -76
  177. data/RELEASE-PLAN +0 -117
  178. data/examples/auto_spec_name_generation_example.rb +0 -18
  179. data/lib/spec/callback.rb +0 -11
  180. data/lib/spec/callback/callback_container.rb +0 -60
  181. data/lib/spec/callback/extensions/module.rb +0 -24
  182. data/lib/spec/callback/extensions/object.rb +0 -37
  183. data/lib/spec/deprecated.rb +0 -3
  184. data/lib/spec/expectations/extensions/proc.rb +0 -57
  185. data/lib/spec/expectations/should.rb +0 -5
  186. data/lib/spec/expectations/should/base.rb +0 -64
  187. data/lib/spec/expectations/should/change.rb +0 -69
  188. data/lib/spec/expectations/should/have.rb +0 -128
  189. data/lib/spec/expectations/should/not.rb +0 -74
  190. data/lib/spec/expectations/should/should.rb +0 -81
  191. data/lib/spec/expectations/sugar.rb +0 -47
  192. data/lib/spec/runner/context.rb +0 -154
  193. data/lib/spec/runner/context_eval.rb +0 -142
  194. data/lib/spec/runner/context_runner.rb +0 -55
  195. data/lib/spec/runner/execution_context.rb +0 -17
  196. data/lib/spec/runner/spec_matcher.rb +0 -25
  197. data/lib/spec/runner/specification.rb +0 -114
  198. data/spec/spec/callback/callback_container_spec.rb +0 -27
  199. data/spec/spec/callback/module_spec.rb +0 -37
  200. data/spec/spec/callback/object_spec.rb +0 -90
  201. data/spec/spec/callback/object_with_class_callback_spec.rb +0 -19
  202. data/spec/spec/expectations/should/should_==_spec.rb +0 -19
  203. data/spec/spec/expectations/should/should_=~_spec.rb +0 -13
  204. data/spec/spec/expectations/should/should_be_a_kind_of_spec.rb +0 -21
  205. data/spec/spec/expectations/should/should_be_an_instance_of_spec.rb +0 -30
  206. data/spec/spec/expectations/should/should_be_arbitrary_predicate_spec.rb +0 -81
  207. data/spec/spec/expectations/should/should_be_close_spec.rb +0 -18
  208. data/spec/spec/expectations/should/should_be_comparison_operator_spec.rb +0 -44
  209. data/spec/spec/expectations/should/should_be_false_spec.rb +0 -39
  210. data/spec/spec/expectations/should/should_be_spec.rb +0 -11
  211. data/spec/spec/expectations/should/should_be_true_spec.rb +0 -27
  212. data/spec/spec/expectations/should/should_change_spec.rb +0 -184
  213. data/spec/spec/expectations/should/should_eql_spec.rb +0 -11
  214. data/spec/spec/expectations/should/should_equal_spec.rb +0 -11
  215. data/spec/spec/expectations/should/should_have_at_least_spec.rb +0 -53
  216. data/spec/spec/expectations/should/should_have_at_most_spec.rb +0 -45
  217. data/spec/spec/expectations/should/should_have_key_spec.rb +0 -21
  218. data/spec/spec/expectations/should/should_have_spec.rb +0 -64
  219. data/spec/spec/expectations/should/should_include_spec.rb +0 -59
  220. data/spec/spec/expectations/should/should_match_spec.rb +0 -25
  221. data/spec/spec/expectations/should/should_not_==_spec.rb +0 -15
  222. data/spec/spec/expectations/should/should_not_be_a_kind_of_spec.rb +0 -21
  223. data/spec/spec/expectations/should/should_not_be_an_instance_of_spec.rb +0 -11
  224. data/spec/spec/expectations/should/should_not_be_arbitrary_predicate_spec.rb +0 -68
  225. data/spec/spec/expectations/should/should_not_be_spec.rb +0 -11
  226. data/spec/spec/expectations/should/should_not_change_spec.rb +0 -24
  227. data/spec/spec/expectations/should/should_not_eql_spec.rb +0 -11
  228. data/spec/spec/expectations/should/should_not_equal_spec.rb +0 -11
  229. data/spec/spec/expectations/should/should_not_have_key_spec.rb +0 -15
  230. data/spec/spec/expectations/should/should_not_include_spec.rb +0 -58
  231. data/spec/spec/expectations/should/should_not_match_spec.rb +0 -11
  232. data/spec/spec/expectations/should/should_not_raise_spec.rb +0 -75
  233. data/spec/spec/expectations/should/should_not_respond_to_spec.rb +0 -15
  234. data/spec/spec/expectations/should/should_not_throw_spec.rb +0 -35
  235. data/spec/spec/expectations/should/should_raise_spec.rb +0 -66
  236. data/spec/spec/expectations/should/should_respond_to_spec.rb +0 -15
  237. data/spec/spec/expectations/should/should_satisfy_spec.rb +0 -35
  238. data/spec/spec/expectations/should/should_throw_spec.rb +0 -27
  239. data/spec/spec/runner/context_runner_spec.rb +0 -100
  240. data/spec/spec/runner/context_spec.rb +0 -405
  241. data/spec/spec/runner/kernel_ext_spec.rb +0 -16
  242. data/spec/spec/runner/spec_name_generation_spec.rb +0 -102
  243. data/spec/spec/runner/specification_class_spec.rb +0 -72
  244. data/spec/spec/runner/specification_instance_spec.rb +0 -160
  245. data/spec/spec/runner/specification_should_raise_spec.rb +0 -136
@@ -11,22 +11,22 @@ module HaveSpecHelper
11
11
  end
12
12
  end
13
13
 
14
- context "should have(n).items" do
14
+ describe "should have(n).items" do
15
15
  include HaveSpecHelper
16
16
 
17
- specify "should pass if target has a collection of items with n members" do
17
+ it "should pass if target has a collection of items with n members" do
18
18
  owner = create_collection_owner_with(3)
19
19
  owner.should have(3).items_in_collection_with_length_method
20
20
  owner.should have(3).items_in_collection_with_size_method
21
21
  end
22
22
 
23
- specify "should convert :no to 0" do
23
+ it "should convert :no to 0" do
24
24
  owner = create_collection_owner_with(0)
25
25
  owner.should have(:no).items_in_collection_with_length_method
26
26
  owner.should have(:no).items_in_collection_with_size_method
27
27
  end
28
28
 
29
- specify "should fail if target has a collection of items with < n members" do
29
+ it "should fail if target has a collection of items with < n members" do
30
30
  owner = create_collection_owner_with(3)
31
31
  lambda {
32
32
  owner.should have(4).items_in_collection_with_length_method
@@ -36,7 +36,7 @@ context "should have(n).items" do
36
36
  }.should fail_with("expected 4 items_in_collection_with_size_method, got 3")
37
37
  end
38
38
 
39
- specify "should fail if target has a collection of items with > n members" do
39
+ it "should fail if target has a collection of items with > n members" do
40
40
  owner = create_collection_owner_with(3)
41
41
  lambda {
42
42
  owner.should have(2).items_in_collection_with_length_method
@@ -47,22 +47,22 @@ context "should have(n).items" do
47
47
  end
48
48
  end
49
49
 
50
- context "should_not have(n).items" do
50
+ describe "should_not have(n).items" do
51
51
  include HaveSpecHelper
52
52
 
53
- specify "should pass if target has a collection of items with < n members" do
53
+ it "should pass if target has a collection of items with < n members" do
54
54
  owner = create_collection_owner_with(3)
55
55
  owner.should_not have(4).items_in_collection_with_length_method
56
56
  owner.should_not have(4).items_in_collection_with_size_method
57
57
  end
58
58
 
59
- specify "should pass if target has a collection of items with > n members" do
59
+ it "should pass if target has a collection of items with > n members" do
60
60
  owner = create_collection_owner_with(3)
61
61
  owner.should_not have(2).items_in_collection_with_length_method
62
62
  owner.should_not have(2).items_in_collection_with_size_method
63
63
  end
64
64
 
65
- specify "should fail if target has a collection of items with n members" do
65
+ it "should fail if target has a collection of items with n members" do
66
66
  owner = create_collection_owner_with(3)
67
67
  lambda {
68
68
  owner.should_not have(3).items_in_collection_with_length_method
@@ -73,22 +73,22 @@ context "should_not have(n).items" do
73
73
  end
74
74
  end
75
75
 
76
- context "should have_exactly(n).items" do
76
+ describe "should have_exactly(n).items" do
77
77
  include HaveSpecHelper
78
78
 
79
- specify "should pass if target has a collection of items with n members" do
79
+ it "should pass if target has a collection of items with n members" do
80
80
  owner = create_collection_owner_with(3)
81
81
  owner.should have_exactly(3).items_in_collection_with_length_method
82
82
  owner.should have_exactly(3).items_in_collection_with_size_method
83
83
  end
84
84
 
85
- specify "should convert :no to 0" do
85
+ it "should convert :no to 0" do
86
86
  owner = create_collection_owner_with(0)
87
87
  owner.should have_exactly(:no).items_in_collection_with_length_method
88
88
  owner.should have_exactly(:no).items_in_collection_with_size_method
89
89
  end
90
90
 
91
- specify "should fail if target has a collection of items with < n members" do
91
+ it "should fail if target has a collection of items with < n members" do
92
92
  owner = create_collection_owner_with(3)
93
93
  lambda {
94
94
  owner.should have_exactly(4).items_in_collection_with_length_method
@@ -98,7 +98,7 @@ context "should have_exactly(n).items" do
98
98
  }.should fail_with("expected 4 items_in_collection_with_size_method, got 3")
99
99
  end
100
100
 
101
- specify "should fail if target has a collection of items with > n members" do
101
+ it "should fail if target has a collection of items with > n members" do
102
102
  owner = create_collection_owner_with(3)
103
103
  lambda {
104
104
  owner.should have_exactly(2).items_in_collection_with_length_method
@@ -109,22 +109,22 @@ context "should have_exactly(n).items" do
109
109
  end
110
110
  end
111
111
 
112
- context "should have_at_least(n).items" do
112
+ describe "should have_at_least(n).items" do
113
113
  include HaveSpecHelper
114
114
 
115
- specify "should pass if target has a collection of items with n members" do
115
+ it "should pass if target has a collection of items with n members" do
116
116
  owner = create_collection_owner_with(3)
117
117
  owner.should have_at_least(3).items_in_collection_with_length_method
118
118
  owner.should have_at_least(3).items_in_collection_with_size_method
119
119
  end
120
120
 
121
- specify "should pass if target has a collection of items with > n members" do
121
+ it "should pass if target has a collection of items with > n members" do
122
122
  owner = create_collection_owner_with(3)
123
123
  owner.should have_at_least(2).items_in_collection_with_length_method
124
124
  owner.should have_at_least(2).items_in_collection_with_size_method
125
125
  end
126
126
 
127
- specify "should fail if target has a collection of items with < n members" do
127
+ it "should fail if target has a collection of items with < n members" do
128
128
  owner = create_collection_owner_with(3)
129
129
  lambda {
130
130
  owner.should have_at_least(4).items_in_collection_with_length_method
@@ -134,7 +134,7 @@ context "should have_at_least(n).items" do
134
134
  }.should fail_with("expected at least 4 items_in_collection_with_size_method, got 3")
135
135
  end
136
136
 
137
- specify "should provide educational negative failure messages" do
137
+ it "should provide educational negative failure messages" do
138
138
  #given
139
139
  owner = create_collection_owner_with(3)
140
140
  length_matcher = have_at_least(3).items_in_collection_with_length_method
@@ -163,16 +163,16 @@ EOF
163
163
  end
164
164
  end
165
165
 
166
- context "should have_at_most(n).items" do
166
+ describe "should have_at_most(n).items" do
167
167
  include HaveSpecHelper
168
168
 
169
- specify "should pass if target has a collection of items with n members" do
169
+ it "should pass if target has a collection of items with n members" do
170
170
  owner = create_collection_owner_with(3)
171
171
  owner.should have_at_most(3).items_in_collection_with_length_method
172
172
  owner.should have_at_most(3).items_in_collection_with_size_method
173
173
  end
174
174
 
175
- specify "should fail if target has a collection of items with > n members" do
175
+ it "should fail if target has a collection of items with > n members" do
176
176
  owner = create_collection_owner_with(3)
177
177
  lambda {
178
178
  owner.should have_at_most(2).items_in_collection_with_length_method
@@ -182,13 +182,13 @@ context "should have_at_most(n).items" do
182
182
  }.should fail_with("expected at most 2 items_in_collection_with_size_method, got 3")
183
183
  end
184
184
 
185
- specify "should pass if target has a collection of items with < n members" do
185
+ it "should pass if target has a collection of items with < n members" do
186
186
  owner = create_collection_owner_with(3)
187
187
  owner.should have_at_most(4).items_in_collection_with_length_method
188
188
  owner.should have_at_most(4).items_in_collection_with_size_method
189
189
  end
190
190
 
191
- specify "should provide educational negative failure messages" do
191
+ it "should provide educational negative failure messages" do
192
192
  #given
193
193
  owner = create_collection_owner_with(3)
194
194
  length_matcher = have_at_most(3).items_in_collection_with_length_method
@@ -217,14 +217,14 @@ EOF
217
217
  end
218
218
  end
219
219
 
220
- context "have(n).items(args, block)" do
221
- specify "should pass args to target" do
220
+ describe "have(n).items(args, block)" do
221
+ it "should pass args to target" do
222
222
  target = mock("target")
223
223
  target.should_receive(:items).with("arg1","arg2").and_return([1,2,3])
224
224
  target.should have(3).items("arg1","arg2")
225
225
  end
226
226
 
227
- specify "should pass block to target" do
227
+ it "should pass block to target" do
228
228
  target = mock("target")
229
229
  block = lambda { 5 }
230
230
  target.should_receive(:items).with("arg1","arg2", block).and_return([1,2,3])
@@ -232,28 +232,28 @@ context "have(n).items(args, block)" do
232
232
  end
233
233
  end
234
234
 
235
- context "have(n).items where target IS a collection" do
236
- specify "should reference the number of items IN the collection" do
235
+ describe "have(n).items where target IS a collection" do
236
+ it "should reference the number of items IN the collection" do
237
237
  [1,2,3].should have(3).items
238
238
  end
239
239
 
240
- specify "should reference the number of items IN the collection" do
241
- lambda { [1,2,3].should have(7).items }.should_fail_with("expected 7 items, got 3")
240
+ it "should reference the number of items IN the collection" do
241
+ lambda { [1,2,3].should have(7).items }.should fail_with("expected 7 items, got 3")
242
242
  end
243
243
  end
244
244
 
245
- context "have(n).characters where target IS a String" do
246
- specify "should pass if the length is correct" do
245
+ describe "have(n).characters where target IS a String" do
246
+ it "should pass if the length is correct" do
247
247
  "this string".should have(11).characters
248
248
  end
249
249
 
250
- specify "should fail if the length is incorrect" do
251
- lambda { "this string".should have(12).characters }.should_fail_with("expected 12 characters, got 11")
250
+ it "should fail if the length is incorrect" do
251
+ lambda { "this string".should have(12).characters }.should fail_with("expected 12 characters, got 11")
252
252
  end
253
253
  end
254
254
 
255
- context "have(n).things on an object which is not a collection nor contains one" do
256
- specify "should fail" do
257
- lambda { Object.new.should have(2).things }.should_raise(NoMethodError, /undefined method `things' for #<Object:/)
255
+ describe "have(n).things on an object which is not a collection nor contains one" do
256
+ it "should fail" do
257
+ lambda { Object.new.should have(2).things }.should raise_error(NoMethodError, /undefined method `things' for #<Object:/)
258
258
  end
259
259
  end
@@ -1,12 +1,12 @@
1
1
  require File.dirname(__FILE__) + '/../../spec_helper.rb'
2
2
 
3
- context "should include(expected)" do
4
- specify "should pass if target includes expected" do
3
+ describe "should include(expected)" do
4
+ it "should pass if target includes expected" do
5
5
  [1,2,3].should include(3)
6
6
  "abc".should include("a")
7
7
  end
8
8
 
9
- specify "should fail if target does not include expected" do
9
+ it "should fail if target does not include expected" do
10
10
  lambda {
11
11
  [1,2,3].should include(4)
12
12
  }.should fail_with("expected [1, 2, 3] to include 4")
@@ -16,13 +16,13 @@ context "should include(expected)" do
16
16
  end
17
17
  end
18
18
 
19
- context "should_not include(expected)" do
20
- specify "should pass if target does not include expected" do
19
+ describe "should_not include(expected)" do
20
+ it "should pass if target does not include expected" do
21
21
  [1,2,3].should_not include(4)
22
22
  "abc".should_not include("d")
23
23
  end
24
24
 
25
- specify "should fail if target includes expected" do
25
+ it "should fail if target includes expected" do
26
26
  lambda {
27
27
  [1,2,3].should_not include(3)
28
28
  }.should fail_with("expected [1, 2, 3] not to include 3")
@@ -1,35 +1,35 @@
1
1
  require File.dirname(__FILE__) + '/../../spec_helper.rb'
2
2
 
3
- context "should match(expected)" do
4
- specify "should pass when target (String) matches expected (Regexp)" do
3
+ describe "should match(expected)" do
4
+ it "should pass when target (String) matches expected (Regexp)" do
5
5
  "string".should match(/tri/)
6
6
  end
7
7
 
8
- specify "should fail when target (String) matches expected (Regexp)" do
8
+ it "should fail when target (String) matches expected (Regexp)" do
9
9
  lambda {
10
10
  "string".should match(/rings/)
11
11
  }.should fail
12
12
  end
13
13
 
14
- specify "should provide message, expected and actual on failure" do
14
+ it "should provide message, expected and actual on failure" do
15
15
  matcher = match(/rings/)
16
16
  matcher.matches?("string")
17
17
  matcher.failure_message.should == ["expected \"string\" to match /rings/", /rings/, "string"]
18
18
  end
19
19
  end
20
20
 
21
- context "should_not match(expected)" do
22
- specify "should pass when target (String) matches expected (Regexp)" do
21
+ describe "should_not match(expected)" do
22
+ it "should pass when target (String) matches expected (Regexp)" do
23
23
  "string".should_not match(/rings/)
24
24
  end
25
25
 
26
- specify "should fail when target (String) matches expected (Regexp)" do
26
+ it "should fail when target (String) matches expected (Regexp)" do
27
27
  lambda {
28
28
  "string".should_not match(/tri/)
29
29
  }.should fail
30
30
  end
31
31
 
32
- specify "should provide message, expected and actual on failure" do
32
+ it "should provide message, expected and actual on failure" do
33
33
  matcher = match(/tri/)
34
34
  matcher.matches?("string")
35
35
  matcher.negative_failure_message.should == ["expected \"string\" not to match /tri/", /tri/, "string"]
@@ -2,84 +2,77 @@ require File.dirname(__FILE__) + '/../../spec_helper.rb'
2
2
 
3
3
  module Spec
4
4
  module Matchers
5
-
6
- context "Spec::Matchers should support" do
7
- specify "be_true" do
5
+ context %Q{The Spec::Matchers module gets included in the execution context of every spec.
6
+ This module should provide the following methods, each of which returns a Matcher object.} do
7
+ it "be_true" do
8
8
  be_true.should be_an_instance_of(Be)
9
9
  end
10
- specify "be_false" do
10
+ it "be_false" do
11
11
  be_false.should be_an_instance_of(Be)
12
12
  end
13
- specify "be_nil" do
13
+ it "be_nil" do
14
14
  be_nil.should be_an_instance_of(Be)
15
15
  end
16
- specify "be_arbitrary_predicate" do
16
+ it "be_arbitrary_predicate" do
17
17
  be_arbitrary_predicate.should be_an_instance_of(Be)
18
18
  end
19
- specify "be_close" do
19
+ it "be_close" do
20
20
  be_close(1,2).should be_an_instance_of(BeClose)
21
21
  end
22
- specify "change" do
22
+ it "change" do
23
23
  change("target", :message).should be_an_instance_of(Change)
24
24
  end
25
- specify "eql" do
25
+ it "eql" do
26
26
  eql(:expected).should be_an_instance_of(Eql)
27
27
  end
28
- specify "equal" do
28
+ it "equal" do
29
29
  equal(:expected).should be_an_instance_of(Equal)
30
30
  end
31
- specify "have_x > has_x?" do
32
- have_key(:key).should be_an_instance_of(Has)
33
- end
34
- specify "have" do
31
+ it "have" do
35
32
  have(0).should be_an_instance_of(Have)
36
33
  end
37
- specify "have_exactly" do
34
+ it "have_exactly" do
38
35
  have_exactly(0).should be_an_instance_of(Have)
39
36
  end
40
- specify "have_at_least" do
37
+ it "have_at_least" do
41
38
  have_at_least(0).should be_an_instance_of(Have)
42
39
  end
43
- specify "have_at_most" do
40
+ it "have_at_most" do
44
41
  have_at_most(0).should be_an_instance_of(Have)
45
42
  end
46
- specify "include" do
43
+ it "include" do
47
44
  include(:value).should be_an_instance_of(Include)
48
45
  end
49
- specify "match" do
46
+ it "match" do
50
47
  match(:value).should be_an_instance_of(Match)
51
48
  end
52
- specify "raise_error" do
49
+ it "raise_error" do
53
50
  raise_error.should be_an_instance_of(RaiseError)
54
51
  raise_error(NoMethodError).should be_an_instance_of(RaiseError)
55
52
  raise_error(NoMethodError, "message").should be_an_instance_of(RaiseError)
56
53
  end
57
- specify "satisfy" do
54
+ it "satisfy" do
58
55
  satisfy{}.should be_an_instance_of(Satisfy)
59
56
  end
60
- specify "throw_symbol" do
57
+ it "throw_symbol" do
61
58
  throw_symbol.should be_an_instance_of(ThrowSymbol)
62
59
  throw_symbol(:sym).should be_an_instance_of(ThrowSymbol)
63
60
  end
64
- specify "respond_to" do
61
+ it "respond_to" do
65
62
  respond_to(:sym).should be_an_instance_of(RespondTo)
66
63
  end
67
-
68
64
  end
69
65
 
70
- context "Spec::Matchers should convert be_xyz to..." do
71
- specify "sym passed to Be" do
66
+ describe "Spec::Matchers#method_missing" do
67
+ it "should convert be_xyz to Be(:be_xyz)" do
72
68
  Be.should_receive(:new).with(:be_whatever)
73
69
  be_whatever
74
70
  end
75
- end
76
-
77
- context "Spec::Matchers should convert have_xyz to..." do
78
- specify "string passed to Has" do
71
+
72
+ it "should convert have_xyz to Has(:have_xyz)" do
79
73
  Has.should_receive(:new).with(:have_whatever)
80
74
  have_whatever
81
75
  end
82
76
  end
83
-
84
77
  end
85
78
  end
@@ -1,145 +1,145 @@
1
1
  require File.dirname(__FILE__) + '/../../spec_helper.rb'
2
2
 
3
- context "should raise_error" do
4
- specify "should pass if anything is raised" do
3
+ describe "should raise_error" do
4
+ it "should pass if anything is raised" do
5
5
  lambda {raise}.should raise_error
6
6
  end
7
7
 
8
- specify "should fail if nothing is raised" do
8
+ it "should fail if nothing is raised" do
9
9
  lambda {
10
10
  lambda {}.should raise_error
11
11
  }.should fail_with("expected Exception but nothing was raised")
12
12
  end
13
13
  end
14
14
 
15
- context "should_not raise_error" do
16
- specify "should pass if nothing is raised" do
15
+ describe "should_not raise_error" do
16
+ it "should pass if nothing is raised" do
17
17
  lambda {}.should_not raise_error
18
18
  end
19
19
 
20
- specify "should fail if anything is raised" do
20
+ it "should fail if anything is raised" do
21
21
  lambda {
22
22
  lambda {raise}.should_not raise_error
23
23
  }.should fail_with("expected no Exception, got RuntimeError")
24
24
  end
25
25
  end
26
26
 
27
- context "should raise_error(NamedError)" do
28
- specify "should pass if named error is raised" do
27
+ describe "should raise_error(NamedError)" do
28
+ it "should pass if named error is raised" do
29
29
  lambda { non_existent_method }.should raise_error(NameError)
30
30
  end
31
31
 
32
- specify "should fail if nothing is raised" do
32
+ it "should fail if nothing is raised" do
33
33
  lambda {
34
34
  lambda { }.should raise_error(NameError)
35
35
  }.should fail_with("expected NameError but nothing was raised")
36
36
  end
37
37
 
38
- specify "should fail if another error is raised" do
38
+ it "should fail if another error is raised" do
39
39
  lambda {
40
40
  lambda { raise }.should raise_error(NameError)
41
41
  }.should fail_with("expected NameError, got RuntimeError")
42
42
  end
43
43
  end
44
44
 
45
- context "should_not raise_error(NamedError)" do
46
- specify "should pass if nothing is raised" do
45
+ describe "should_not raise_error(NamedError)" do
46
+ it "should pass if nothing is raised" do
47
47
  lambda { }.should_not raise_error(NameError)
48
48
  end
49
49
 
50
- specify "should pass if another error is raised" do
50
+ it "should pass if another error is raised" do
51
51
  lambda { raise }.should_not raise_error(NameError)
52
52
  end
53
53
 
54
- specify "should fail if named error is raised" do
54
+ it "should fail if named error is raised" do
55
55
  lambda {
56
56
  lambda { non_existent_method }.should_not raise_error(NameError)
57
57
  }.should fail_with(/expected no NameError, got #<NameError: undefined/)
58
58
  end
59
59
  end
60
60
 
61
- context "should raise_error(NamedError, error_message) with String" do
62
- specify "should pass if named error is raised with same message" do
61
+ describe "should raise_error(NamedError, error_message) with String" do
62
+ it "should pass if named error is raised with same message" do
63
63
  lambda { raise "example message" }.should raise_error(RuntimeError, "example message")
64
64
  end
65
65
 
66
- specify "should fail if nothing is raised" do
66
+ it "should fail if nothing is raised" do
67
67
  lambda {
68
68
  lambda {}.should raise_error(RuntimeError, "example message")
69
69
  }.should fail_with("expected RuntimeError with \"example message\" but nothing was raised")
70
70
  end
71
71
 
72
- specify "should fail if incorrect error is raised" do
72
+ it "should fail if incorrect error is raised" do
73
73
  lambda {
74
74
  lambda { raise }.should raise_error(NameError, "example message")
75
75
  }.should fail_with("expected NameError with \"example message\", got RuntimeError")
76
76
  end
77
77
 
78
- specify "should fail if correct error is raised with incorrect message" do
78
+ it "should fail if correct error is raised with incorrect message" do
79
79
  lambda {
80
80
  lambda { raise RuntimeError.new("not the example message") }.should raise_error(RuntimeError, "example message")
81
81
  }.should fail_with(/expected RuntimeError with \"example message\", got #<RuntimeError: not the example message/)
82
82
  end
83
83
  end
84
84
 
85
- context "should_not raise_error(NamedError, error_message) with String" do
86
- specify "should pass if nothing is raised" do
85
+ describe "should_not raise_error(NamedError, error_message) with String" do
86
+ it "should pass if nothing is raised" do
87
87
  lambda {}.should_not raise_error(RuntimeError, "example message")
88
88
  end
89
89
 
90
- specify "should pass if a different error is raised" do
90
+ it "should pass if a different error is raised" do
91
91
  lambda { raise }.should_not raise_error(NameError, "example message")
92
92
  end
93
93
 
94
- specify "should pass if same error is raised with different message" do
94
+ it "should pass if same error is raised with different message" do
95
95
  lambda { raise RuntimeError.new("not the example message") }.should_not raise_error(RuntimeError, "example message")
96
96
  end
97
97
 
98
- specify "should fail if named error is raised with same message" do
98
+ it "should fail if named error is raised with same message" do
99
99
  lambda {
100
100
  lambda { raise "example message" }.should_not raise_error(RuntimeError, "example message")
101
101
  }.should fail_with("expected no RuntimeError with \"example message\", got #<RuntimeError: example message>")
102
102
  end
103
103
  end
104
104
 
105
- context "should raise_error(NamedError, error_message) with Regexp" do
106
- specify "should pass if named error is raised with matching message" do
105
+ describe "should raise_error(NamedError, error_message) with Regexp" do
106
+ it "should pass if named error is raised with matching message" do
107
107
  lambda { raise "example message" }.should raise_error(RuntimeError, /ample mess/)
108
108
  end
109
109
 
110
- specify "should fail if nothing is raised" do
110
+ it "should fail if nothing is raised" do
111
111
  lambda {
112
112
  lambda {}.should raise_error(RuntimeError, /ample mess/)
113
113
  }.should fail_with("expected RuntimeError with message matching /ample mess/ but nothing was raised")
114
114
  end
115
115
 
116
- specify "should fail if incorrect error is raised" do
116
+ it "should fail if incorrect error is raised" do
117
117
  lambda {
118
118
  lambda { raise }.should raise_error(NameError, /ample mess/)
119
119
  }.should fail_with("expected NameError with message matching /ample mess/, got RuntimeError")
120
120
  end
121
121
 
122
- specify "should fail if correct error is raised with incorrect message" do
122
+ it "should fail if correct error is raised with incorrect message" do
123
123
  lambda {
124
124
  lambda { raise RuntimeError.new("not the example message") }.should raise_error(RuntimeError, /less than ample mess/)
125
125
  }.should fail_with("expected RuntimeError with message matching /less than ample mess/, got #<RuntimeError: not the example message>")
126
126
  end
127
127
  end
128
128
 
129
- context "should_not raise_error(NamedError, error_message) with Regexp" do
130
- specify "should pass if nothing is raised" do
129
+ describe "should_not raise_error(NamedError, error_message) with Regexp" do
130
+ it "should pass if nothing is raised" do
131
131
  lambda {}.should_not raise_error(RuntimeError, /ample mess/)
132
132
  end
133
133
 
134
- specify "should pass if a different error is raised" do
134
+ it "should pass if a different error is raised" do
135
135
  lambda { raise }.should_not raise_error(NameError, /ample mess/)
136
136
  end
137
137
 
138
- specify "should pass if same error is raised with non-matching message" do
138
+ it "should pass if same error is raised with non-matching message" do
139
139
  lambda { raise RuntimeError.new("non matching message") }.should_not raise_error(RuntimeError, /ample mess/)
140
140
  end
141
141
 
142
- specify "should fail if named error is raised with matching message" do
142
+ it "should fail if named error is raised with matching message" do
143
143
  lambda {
144
144
  lambda { raise "example message" }.should_not raise_error(RuntimeError, /ample mess/)
145
145
  }.should fail_with("expected no RuntimeError with message matching /ample mess/, got #<RuntimeError: example message>")