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
@@ -1,19 +0,0 @@
1
- dir = File.dirname(__FILE__)
2
- require "#{dir}/../../spec_helper"
3
-
4
- context "An Object with class callback" do
5
- specify "should notify the class callback" do
6
- klass = Class.new do
7
- class << self
8
- callback_events :the_callback
9
- end
10
- end
11
-
12
- klass_callback_called = false
13
- klass.the_callback {klass_callback_called = true}
14
- obj = klass.new
15
- obj.send(:notify_class_callbacks, :the_callback)
16
-
17
- klass_callback_called.should == true
18
- end
19
- end
@@ -1,19 +0,0 @@
1
- require File.dirname(__FILE__) + '/../../../spec_helper.rb'
2
-
3
- require 'spec/expectations/differs/default'
4
-
5
- context "should ==" do
6
-
7
- specify "should pass when objects are ==" do
8
- lambda do
9
- "apple".should == "apple"
10
- end.should_pass
11
- end
12
-
13
- specify "should fail when objects are not ==" do
14
- lambda do
15
- "1".should == 1
16
- end.should_fail_with "expected 1, got \"1\" (using ==)"
17
- end
18
-
19
- end
@@ -1,13 +0,0 @@
1
- require File.dirname(__FILE__) + '/../../../spec_helper'
2
-
3
- context "should =~" do
4
- specify "should pass when =~ operator returns non-nil" do
5
- "foo".should =~ /oo/
6
- end
7
-
8
- specify "should fail when =~ operator returns nil" do
9
- lambda do
10
- "fu".should =~ /oo/
11
- end.should_fail_with "expected =~ /oo/, got \"fu\""
12
- end
13
- end
@@ -1,21 +0,0 @@
1
- require File.dirname(__FILE__) + '/../../../spec_helper.rb'
2
-
3
- context "should_be_a_kind_of" do
4
- specify "should fail when target is not specified class" do
5
- lambda do
6
- 5.should_be_a_kind_of(String)
7
- end.should_fail_with "expected kind_of?(String) to return true, got false"
8
- end
9
-
10
- specify "should pass when target is of specified class" do
11
- lambda do
12
- 5.should_be_a_kind_of(Fixnum)
13
- end.should_pass
14
- end
15
-
16
- specify "should pass when target is of subclass of specified class" do
17
- lambda do
18
- 5.should_be_a_kind_of(Integer)
19
- end.should_pass
20
- end
21
- end
@@ -1,30 +0,0 @@
1
- require File.dirname(__FILE__) + '/../../../spec_helper.rb'
2
-
3
- context "should_be_an_instance_of" do
4
- specify "should fail when target is not specified class (OLD STYLE)" do
5
- lambda do
6
- 5.should_be_an_instance_of(Integer)
7
- end.should_fail_with "expected instance_of?(Integer) to return true, got false"
8
- end
9
-
10
- specify "should pass when target is specified class (OLD STYLE)" do
11
- lambda do
12
- 5.should_be_an_instance_of(Fixnum)
13
- end.should_pass
14
- end
15
-
16
- begin
17
- specify "should fail when target is not specified class" do
18
- lambda do
19
- 5.should be_instance_of(Integer)
20
- end.should_fail_with "expected instance_of?(Integer) to return true, got false"
21
- end
22
-
23
- specify "should pass when target is specified class" do
24
- lambda do
25
- 5.should be_instance_of(Fixnum)
26
- end.should_pass
27
- end
28
- end
29
-
30
- end
@@ -1,81 +0,0 @@
1
- require File.dirname(__FILE__) + '/../../../spec_helper.rb'
2
-
3
- module Spec
4
- module Expectations
5
- module Helper
6
- context "should_be_<arbitrary predicate>" do
7
- specify "should fail when method returns something other than true false or nil" do
8
- mock=HandCodedMock.new(5)
9
- lambda do
10
- mock.should_be_funny
11
- end.should_pass
12
- mock.__verify
13
- end
14
-
15
- specify "should fail when predicate accepts args and returns false" do
16
- mock=HandCodedMock.new(false)
17
- lambda do
18
- mock.should_be_hungry(1, 2, 3)
19
- end.should_fail_with "expected hungry?(1, 2, 3) to return true, got false"
20
- mock.__verify
21
- end
22
-
23
- specify "should fail when predicate returns false" do
24
- mock=HandCodedMock.new(false)
25
- lambda do
26
- mock.should_be_funny
27
- end.should_fail
28
- end
29
-
30
- specify "should fail when predicate returns nil" do
31
- mock=HandCodedMock.new(nil)
32
- lambda do
33
- mock.should_be_funny
34
- end.should_fail
35
- mock.__verify
36
- end
37
-
38
- specify "should pass when predicate accepts args and returns true" do
39
- mock=HandCodedMock.new(true)
40
- lambda do
41
- mock.should_be_hungry(1, 2, 3)
42
- end.should_pass
43
- mock.__verify
44
- end
45
-
46
- specify "should pass when predicate returns true" do
47
- mock=HandCodedMock.new(true)
48
- lambda do
49
- mock.should_be_funny
50
- end.should_pass
51
- mock.__verify
52
- end
53
-
54
- specify "should raise when target does not respond to predicate" do
55
- lambda do
56
- 5.should_be_funny
57
- end.should_raise(NameError)
58
- end
59
-
60
- specify "should support multi word predicates with should" do
61
- lambda do
62
- HandCodedMock.new(true).should_multi_word_predicate
63
- end.should_pass
64
- end
65
-
66
- specify "should support multi word predicates with should be" do
67
- lambda do
68
- HandCodedMock.new(true).should_be_multi_word_predicate
69
- end.should_pass
70
- end
71
-
72
- specify "should support present tense (i.e. t.should_exist evaluates t.exists?)" do
73
- mock=HandCodedMock.new(true)
74
- lambda do
75
- mock.should_exist
76
- end.should_pass
77
- end
78
- end
79
- end
80
- end
81
- end
@@ -1,18 +0,0 @@
1
- require File.dirname(__FILE__) + '/../../../spec_helper.rb'
2
-
3
- context "should_be_close" do
4
- specify "should not raise when values are within bounds" do
5
- 3.5.should_be_close(3.5, 0.5)
6
- 3.5.should_be_close(3.1, 0.5)
7
- 3.5.should_be_close(3.01, 0.5)
8
- 3.5.should_be_close(3.9, 0.5)
9
- 3.5.should_be_close(3.99, 0.5)
10
- end
11
-
12
- specify "should raise when values are outside bounds" do
13
- lambda { 3.5.should_be_close(3.0, 0.5) }.should_fail_with "expected 3.0 +/- (<0.5), got 3.5"
14
- lambda { 3.5.should_be_close(2.0, 0.5) }.should_fail
15
- lambda { 3.5.should_be_close(3.0, 0.5) }.should_fail
16
- lambda { 3.5.should_be_close(4.0, 0.5) }.should_fail
17
- end
18
- end
@@ -1,44 +0,0 @@
1
- require File.dirname(__FILE__) + '/../../../spec_helper'
2
-
3
- context "should_be <" do
4
- specify "should pass when < operator returns true" do
5
- 3.should_be < 4
6
- end
7
-
8
- specify "should fail when < operator returns false" do
9
- lambda { 3.should_be < 3 }.should_fail_with "expected < 3, got 3"
10
- end
11
- end
12
-
13
- context "should_be <=" do
14
- specify "should pass when <= operator returns true" do
15
- 3.should_be <= 4
16
- 4.should_be <= 4
17
- end
18
-
19
- specify "should fail when <= operator returns false" do
20
- lambda { 3.should_be <= 2 }.should_fail
21
- end
22
- end
23
-
24
- context "should_be >=" do
25
- specify "should pass when >= operator returns true" do
26
- 4.should_be >= 4
27
- 5.should_be >= 4
28
- end
29
-
30
- specify "should fail when >= operator returns false" do
31
- lambda { 3.should_be >= 4 }.should_fail
32
- end
33
- end
34
-
35
- context "should_be >" do
36
- specify "should pass when > operator returns true" do
37
- 5.should_be > 4
38
- end
39
-
40
- specify "should fail when > operator returns false" do
41
- lambda { 3.should_be > 4 }.should_fail
42
- end
43
- end
44
-
@@ -1,39 +0,0 @@
1
- require File.dirname(__FILE__) + '/../../../spec_helper.rb'
2
-
3
- context "should_be false" do
4
- specify "should fail when target is true" do
5
- lambda do
6
- true.should_be false
7
- end.should_fail_with "expected false, got true (using .equal?)"
8
- end
9
-
10
- specify "should fail when target is a number" do
11
- lambda do
12
- 5.should_be false
13
- end.should_fail
14
- end
15
-
16
- specify "should fail when target is a some random object" do
17
- lambda do
18
- self.should_be false
19
- end.should_fail
20
- end
21
-
22
- specify "should fail when target is a string" do
23
- lambda do
24
- "false".should_be false
25
- end.should_fail
26
- end
27
-
28
- specify "should fail when target is nil" do
29
- lambda do
30
- nil.should_be false
31
- end.should_raise
32
- end
33
-
34
- specify "should pass when target is false" do
35
- lambda do
36
- false.should_be false
37
- end.should_not_raise
38
- end
39
- end
@@ -1,11 +0,0 @@
1
- require File.dirname(__FILE__) + '/../../../spec_helper.rb'
2
-
3
- context "should_be" do
4
- specify "should pass when objects are the same instance" do
5
- :apple.should_be(:apple)
6
- end
7
-
8
- specify "should fail when objects are not the same instance" do
9
- lambda { "apple".should_be("apple") }.should_fail
10
- end
11
- end
@@ -1,27 +0,0 @@
1
- require File.dirname(__FILE__) + '/../../../spec_helper.rb'
2
-
3
- context "should_be true" do
4
- specify "should fail when object is false" do
5
- lambda { false.should_be(true) }.should_fail
6
- end
7
-
8
- specify "should fail when object is nil" do
9
- lambda { nil.should_be(true) }.should_fail
10
- end
11
-
12
- specify "should fail when object is a number" do
13
- lambda { 5.should_be(true) }.should_fail
14
- end
15
-
16
- specify "should fail when object is a some random object" do
17
- lambda { self.should_be(true) }.should_fail
18
- end
19
-
20
- specify "should fail when object is a string" do
21
- lambda { "true".should_be(true) }.should_raise
22
- end
23
-
24
- specify "should pass when object is true" do
25
- true.should_be(true)
26
- end
27
- end
@@ -1,184 +0,0 @@
1
- require File.dirname(__FILE__) + '/../../../spec_helper.rb'
2
- class SomethingExpected
3
- attr_accessor :some_value
4
- end
5
-
6
- context "should_change(actual, message)" do
7
- setup do
8
- @instance = SomethingExpected.new
9
- @instance.some_value = 5
10
- end
11
-
12
- specify "should pass when actual is modified by the block" do
13
- lambda {@instance.some_value = 6}.should_change(@instance, :some_value)
14
- end
15
-
16
- specify "should fail when actual is not modified by the block" do
17
- lambda do
18
- lambda {}.should_change(@instance, :some_value)
19
- end.should_fail_with "some_value should have changed, but is still 5"
20
- end
21
- end
22
-
23
- context "should_change { block }" do
24
- setup do
25
- @instance = SomethingExpected.new
26
- @instance.some_value = 5
27
- end
28
-
29
- specify "should pass when actual is modified by the block" do
30
- lambda {@instance.some_value = 6}.should_change { @instance.some_value }
31
- end
32
-
33
- specify "should fail when actual is not modified by the block" do
34
- lambda do
35
- lambda {}.should_change{ @instance.some_value }
36
- end.should_fail_with "result should have changed, but is still 5"
37
- end
38
- end
39
-
40
- context "should_change(actual, message).by(expected)" do
41
- setup do
42
- @instance = SomethingExpected.new
43
- @instance.some_value = 5
44
- end
45
-
46
- specify "should pass when attribute is changed by expected amount" do
47
- lambda { @instance.some_value += 1 }.should_change(@instance, :some_value).by(1)
48
- end
49
-
50
- specify "should fail when the attribute is changed by unexpected amount" do
51
- lambda do
52
- lambda { @instance.some_value += 2 }.should_change(@instance, :some_value).by(1)
53
- end.should_fail_with "some_value should have been changed by 1, but was changed by 2"
54
- end
55
-
56
- specify "should fail when the attribute is changed by unexpected amount in the opposite direction" do
57
- lambda do
58
- lambda { @instance.some_value -= 1 }.should_change(@instance, :some_value).by(1)
59
- end.should_fail_with "some_value should have been changed by 1, but was changed by -1"
60
- end
61
- end
62
-
63
- context "should_change{ block }.by(expected)" do
64
- setup do
65
- @instance = SomethingExpected.new
66
- @instance.some_value = 5
67
- end
68
-
69
- specify "should pass when attribute is changed by expected amount" do
70
- lambda { @instance.some_value += 1 }.should_change{@instance.some_value}.by(1)
71
- end
72
-
73
- specify "should fail when the attribute is changed by unexpected amount" do
74
- lambda do
75
- lambda { @instance.some_value += 2 }.should_change{@instance.some_value}.by(1)
76
- end.should_fail_with "result should have been changed by 1, but was changed by 2"
77
- end
78
-
79
- specify "should fail when the attribute is changed by unexpected amount in the opposite direction" do
80
- lambda do
81
- lambda { @instance.some_value -= 1 }.should_change{@instance.some_value}.by(1)
82
- end.should_fail_with "result should have been changed by 1, but was changed by -1"
83
- end
84
- end
85
-
86
- context "should_change(actual, message).from(old)" do
87
- setup do
88
- @instance = SomethingExpected.new
89
- @instance.some_value = 'string'
90
- end
91
-
92
- specify "should pass when attribute is == to expected value before executing block" do
93
- lambda { @instance.some_value = "astring" }.should_change(@instance, :some_value).from("string")
94
- end
95
-
96
- specify "should fail when attribute is not == to expected value before executing block" do
97
- lambda do
98
- lambda { @instance.some_value = "knot" }.should_change(@instance, :some_value).from("cat")
99
- end.should_fail_with "some_value should have initially been \"cat\", but was \"string\""
100
- end
101
- end
102
-
103
- context "should_change{ block }.from(old)" do
104
- setup do
105
- @instance = SomethingExpected.new
106
- @instance.some_value = 'string'
107
- end
108
-
109
- specify "should pass when attribute is == to expected value before executing block" do
110
- lambda { @instance.some_value = "astring" }.should_change{@instance.some_value}.from("string")
111
- end
112
-
113
- specify "should fail when attribute is not == to expected value before executing block" do
114
- lambda do
115
- lambda { @instance.some_value = "knot" }.should_change{@instance.some_value}.from("cat")
116
- end.should_fail_with "result should have initially been \"cat\", but was \"string\""
117
- end
118
- end
119
-
120
- context "should_change(actual, message).to(new)" do
121
- setup do
122
- @instance = SomethingExpected.new
123
- @instance.some_value = 'string'
124
- end
125
-
126
- specify "should pass when attribute is == to expected value after executing block" do
127
- lambda { @instance.some_value = "cat" }.should_change(@instance, :some_value).to("cat")
128
- end
129
-
130
- specify "should fail when attribute is not == to expected value after executing block" do
131
- lambda do
132
- lambda { @instance.some_value = "cat" }.should_change(@instance, :some_value).from("string").to("dog")
133
- end.should_fail_with "some_value should have been changed to \"dog\", but is now \"cat\""
134
- end
135
- end
136
-
137
- context "should_change{ block }.to(new)" do
138
- setup do
139
- @instance = SomethingExpected.new
140
- @instance.some_value = 'string'
141
- end
142
-
143
- specify "should pass when attribute is == to expected value after executing block" do
144
- lambda { @instance.some_value = "cat" }.should_change{@instance.some_value}.to("cat")
145
- end
146
-
147
- specify "should fail when attribute is not == to expected value after executing block" do
148
- lambda do
149
- lambda { @instance.some_value = "cat" }.should_change{@instance.some_value}.from("string").to("dog")
150
- end.should_fail_with "result should have been changed to \"dog\", but is now \"cat\""
151
- end
152
- end
153
-
154
- context "should_change(actual, message).from(old).to(new)" do
155
- setup do
156
- @instance = SomethingExpected.new
157
- @instance.some_value = 'string'
158
- end
159
-
160
- specify "should pass when #to comes before #from" do
161
- lambda { @instance.some_value = "cat" }.should_change(@instance, :some_value).to("cat").from("string")
162
- end
163
-
164
- specify "should pass when #from comes before #to" do
165
- lambda do
166
- lambda { @instance.some_value = "cat" }.should_change(@instance, :some_value).from("string").to("cat")
167
- end.should_pass
168
- end
169
- end
170
-
171
- context "should_change{ block }.from(old).to(new)" do
172
- setup do
173
- @instance = SomethingExpected.new
174
- @instance.some_value = 'string'
175
- end
176
-
177
- specify "should pass when #to comes before #from" do
178
- lambda { @instance.some_value = "cat" }.should_change{@instance.some_value}.to("cat").from("string")
179
- end
180
-
181
- specify "should pass when #from comes before #to" do
182
- lambda { @instance.some_value = "cat" }.should_change{@instance.some_value}.from("string").to("cat")
183
- end
184
- end