mocha 1.10.2 → 1.13.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (235) hide show
  1. checksums.yaml +4 -4
  2. data/.github/FUNDING.yml +1 -0
  3. data/.yardopts +1 -0
  4. data/CONTRIBUTING.md +1 -1
  5. data/README.md +28 -30
  6. data/RELEASE.md +87 -0
  7. data/Rakefile +7 -5
  8. data/lib/mocha/api.rb +2 -3
  9. data/lib/mocha/block_matcher.rb +31 -0
  10. data/lib/mocha/cardinality.rb +30 -27
  11. data/lib/mocha/configuration.rb +2 -2
  12. data/lib/mocha/expectation.rb +71 -30
  13. data/lib/mocha/inspect.rb +6 -4
  14. data/lib/mocha/invocation.rb +9 -5
  15. data/lib/mocha/mock.rb +41 -15
  16. data/lib/mocha/mockery.rb +17 -27
  17. data/lib/mocha/parameter_matchers.rb +1 -0
  18. data/lib/mocha/parameter_matchers/has_entries.rb +2 -3
  19. data/lib/mocha/parameter_matchers/has_entry.rb +24 -16
  20. data/lib/mocha/parameter_matchers/has_key.rb +2 -3
  21. data/lib/mocha/parameter_matchers/has_keys.rb +53 -0
  22. data/lib/mocha/parameter_matchers/has_value.rb +2 -3
  23. data/lib/mocha/parameter_matchers/is_a.rb +2 -3
  24. data/lib/mocha/parameter_matchers/not.rb +2 -3
  25. data/lib/mocha/state_machine.rb +31 -40
  26. data/lib/mocha/stubbed_method.rb +4 -6
  27. data/lib/mocha/version.rb +1 -1
  28. data/lib/mocha/yield_parameters.rb +5 -11
  29. data/mocha.gemspec +13 -7
  30. metadata +8 -210
  31. data/bin/build-matrix +0 -82
  32. data/docs/CNAME +0 -1
  33. data/docs/Mocha.html +0 -254
  34. data/docs/Mocha/API.html +0 -1287
  35. data/docs/Mocha/ClassMethods.html +0 -264
  36. data/docs/Mocha/Configuration.html +0 -1525
  37. data/docs/Mocha/Expectation.html +0 -2654
  38. data/docs/Mocha/ExpectationError.html +0 -152
  39. data/docs/Mocha/ExpectationErrorFactory.html +0 -260
  40. data/docs/Mocha/Hooks.html +0 -370
  41. data/docs/Mocha/Integration.html +0 -125
  42. data/docs/Mocha/Integration/MiniTest.html +0 -123
  43. data/docs/Mocha/Integration/MiniTest/Adapter.html +0 -164
  44. data/docs/Mocha/Integration/TestUnit.html +0 -123
  45. data/docs/Mocha/Integration/TestUnit/Adapter.html +0 -164
  46. data/docs/Mocha/Mock.html +0 -1237
  47. data/docs/Mocha/ObjectMethods.html +0 -765
  48. data/docs/Mocha/ParameterMatchers.html +0 -2961
  49. data/docs/Mocha/ParameterMatchers/AllOf.html +0 -153
  50. data/docs/Mocha/ParameterMatchers/AnyOf.html +0 -153
  51. data/docs/Mocha/ParameterMatchers/AnyParameters.html +0 -153
  52. data/docs/Mocha/ParameterMatchers/Anything.html +0 -153
  53. data/docs/Mocha/ParameterMatchers/Base.html +0 -441
  54. data/docs/Mocha/ParameterMatchers/Equals.html +0 -153
  55. data/docs/Mocha/ParameterMatchers/EquivalentUri.html +0 -153
  56. data/docs/Mocha/ParameterMatchers/HasEntries.html +0 -153
  57. data/docs/Mocha/ParameterMatchers/HasEntry.html +0 -153
  58. data/docs/Mocha/ParameterMatchers/HasKey.html +0 -153
  59. data/docs/Mocha/ParameterMatchers/HasValue.html +0 -153
  60. data/docs/Mocha/ParameterMatchers/Includes.html +0 -153
  61. data/docs/Mocha/ParameterMatchers/InstanceOf.html +0 -153
  62. data/docs/Mocha/ParameterMatchers/IsA.html +0 -153
  63. data/docs/Mocha/ParameterMatchers/KindOf.html +0 -153
  64. data/docs/Mocha/ParameterMatchers/Not.html +0 -153
  65. data/docs/Mocha/ParameterMatchers/Optionally.html +0 -153
  66. data/docs/Mocha/ParameterMatchers/RegexpMatches.html +0 -153
  67. data/docs/Mocha/ParameterMatchers/RespondsWith.html +0 -153
  68. data/docs/Mocha/ParameterMatchers/YamlEquivalent.html +0 -153
  69. data/docs/Mocha/Sequence.html +0 -149
  70. data/docs/Mocha/StateMachine.html +0 -527
  71. data/docs/Mocha/StateMachine/State.html +0 -140
  72. data/docs/Mocha/StateMachine/StatePredicate.html +0 -140
  73. data/docs/Mocha/StubbingError.html +0 -150
  74. data/docs/_index.html +0 -519
  75. data/docs/class_list.html +0 -51
  76. data/docs/css/common.css +0 -1
  77. data/docs/css/full_list.css +0 -58
  78. data/docs/css/style.css +0 -496
  79. data/docs/file.COPYING.html +0 -81
  80. data/docs/file.MIT-LICENSE.html +0 -85
  81. data/docs/file.README.html +0 -448
  82. data/docs/file.RELEASE.html +0 -974
  83. data/docs/file_list.html +0 -71
  84. data/docs/frames.html +0 -17
  85. data/docs/index.html +0 -448
  86. data/docs/js/app.js +0 -303
  87. data/docs/js/full_list.js +0 -216
  88. data/docs/js/jquery.js +0 -4
  89. data/docs/method_list.html +0 -635
  90. data/docs/top-level-namespace.html +0 -118
  91. data/gemfiles/Gemfile.minitest.1.3.0 +0 -7
  92. data/gemfiles/Gemfile.minitest.1.4.0 +0 -7
  93. data/gemfiles/Gemfile.minitest.1.4.1 +0 -7
  94. data/gemfiles/Gemfile.minitest.1.4.2 +0 -7
  95. data/gemfiles/Gemfile.minitest.2.0.0 +0 -7
  96. data/gemfiles/Gemfile.minitest.2.0.1 +0 -7
  97. data/gemfiles/Gemfile.minitest.2.11.0 +0 -7
  98. data/gemfiles/Gemfile.minitest.2.11.2 +0 -7
  99. data/gemfiles/Gemfile.minitest.2.3.0 +0 -7
  100. data/gemfiles/Gemfile.minitest.5.11.3 +0 -7
  101. data/gemfiles/Gemfile.test-unit.2.0.0 +0 -7
  102. data/gemfiles/Gemfile.test-unit.2.0.1 +0 -7
  103. data/gemfiles/Gemfile.test-unit.2.0.3 +0 -7
  104. data/lib/mocha/multiple_yields.rb +0 -15
  105. data/lib/mocha/no_yields.rb +0 -5
  106. data/lib/mocha/pretty_parameters.rb +0 -24
  107. data/lib/mocha/single_yield.rb +0 -13
  108. data/test/acceptance/acceptance_test_helper.rb +0 -41
  109. data/test/acceptance/bug_18914_test.rb +0 -37
  110. data/test/acceptance/bug_21465_test.rb +0 -31
  111. data/test/acceptance/bug_21563_test.rb +0 -22
  112. data/test/acceptance/display_matching_invocations_alongside_expectations_test.rb +0 -69
  113. data/test/acceptance/exception_rescue_test.rb +0 -53
  114. data/test/acceptance/expectations_on_multiple_methods_test.rb +0 -55
  115. data/test/acceptance/expected_invocation_count_test.rb +0 -229
  116. data/test/acceptance/failure_messages_test.rb +0 -61
  117. data/test/acceptance/issue_272_test.rb +0 -50
  118. data/test/acceptance/issue_65_test.rb +0 -64
  119. data/test/acceptance/issue_70_test.rb +0 -53
  120. data/test/acceptance/mocha_example_test.rb +0 -96
  121. data/test/acceptance/mocha_test_result_test.rb +0 -83
  122. data/test/acceptance/mock_built_with_first_argument_type_being_string_test.rb +0 -99
  123. data/test/acceptance/mock_test.rb +0 -139
  124. data/test/acceptance/mocked_methods_dispatch_test.rb +0 -75
  125. data/test/acceptance/multiple_expectations_failure_message_test.rb +0 -66
  126. data/test/acceptance/optional_parameters_test.rb +0 -67
  127. data/test/acceptance/parameter_matcher_test.rb +0 -299
  128. data/test/acceptance/partial_mocks_test.rb +0 -44
  129. data/test/acceptance/prepend_test.rb +0 -86
  130. data/test/acceptance/prevent_use_of_mocha_outside_test_test.rb +0 -76
  131. data/test/acceptance/raise_exception_test.rb +0 -36
  132. data/test/acceptance/return_value_test.rb +0 -49
  133. data/test/acceptance/sequence_test.rb +0 -189
  134. data/test/acceptance/states_test.rb +0 -71
  135. data/test/acceptance/stub_any_instance_method_defined_on_superclass_test.rb +0 -64
  136. data/test/acceptance/stub_any_instance_method_test.rb +0 -301
  137. data/test/acceptance/stub_class_method_defined_on_active_record_association_proxy_test.rb +0 -105
  138. data/test/acceptance/stub_class_method_defined_on_class_test.rb +0 -78
  139. data/test/acceptance/stub_class_method_defined_on_module_test.rb +0 -73
  140. data/test/acceptance/stub_class_method_defined_on_superclass_test.rb +0 -144
  141. data/test/acceptance/stub_everything_test.rb +0 -53
  142. data/test/acceptance/stub_instance_method_defined_on_active_record_association_proxy_test.rb +0 -91
  143. data/test/acceptance/stub_instance_method_defined_on_class_and_aliased_test.rb +0 -67
  144. data/test/acceptance/stub_instance_method_defined_on_class_test.rb +0 -67
  145. data/test/acceptance/stub_instance_method_defined_on_kernel_module_test.rb +0 -136
  146. data/test/acceptance/stub_instance_method_defined_on_module_test.rb +0 -76
  147. data/test/acceptance/stub_instance_method_defined_on_object_class_test.rb +0 -75
  148. data/test/acceptance/stub_instance_method_defined_on_singleton_class_test.rb +0 -67
  149. data/test/acceptance/stub_instance_method_defined_on_superclass_test.rb +0 -70
  150. data/test/acceptance/stub_method_defined_on_module_and_aliased_test.rb +0 -38
  151. data/test/acceptance/stub_module_method_test.rb +0 -200
  152. data/test/acceptance/stub_test.rb +0 -49
  153. data/test/acceptance/stubba_example_test.rb +0 -93
  154. data/test/acceptance/stubba_test_result_test.rb +0 -71
  155. data/test/acceptance/stubbing_error_backtrace_test.rb +0 -63
  156. data/test/acceptance/stubbing_frozen_object_test.rb +0 -88
  157. data/test/acceptance/stubbing_method_accepting_block_parameter_test.rb +0 -52
  158. data/test/acceptance/stubbing_method_unnecessarily_test.rb +0 -63
  159. data/test/acceptance/stubbing_nil_test.rb +0 -60
  160. data/test/acceptance/stubbing_non_existent_any_instance_method_test.rb +0 -157
  161. data/test/acceptance/stubbing_non_existent_class_method_test.rb +0 -157
  162. data/test/acceptance/stubbing_non_existent_instance_method_test.rb +0 -145
  163. data/test/acceptance/stubbing_non_public_any_instance_method_test.rb +0 -128
  164. data/test/acceptance/stubbing_non_public_class_method_test.rb +0 -163
  165. data/test/acceptance/stubbing_non_public_instance_method_test.rb +0 -141
  166. data/test/acceptance/stubbing_on_non_mock_object_test.rb +0 -70
  167. data/test/acceptance/stubbing_same_class_method_on_parent_and_child_classes_test.rb +0 -33
  168. data/test/acceptance/throw_test.rb +0 -42
  169. data/test/acceptance/unexpected_invocation_test.rb +0 -23
  170. data/test/acceptance/unstubbing_test.rb +0 -194
  171. data/test/assertions.rb +0 -8
  172. data/test/deprecation_disabler.rb +0 -15
  173. data/test/execution_point.rb +0 -36
  174. data/test/integration/mini_test_test.rb +0 -8
  175. data/test/integration/shared_tests.rb +0 -178
  176. data/test/integration/test_unit_test.rb +0 -8
  177. data/test/method_definer.rb +0 -16
  178. data/test/mini_test_result.rb +0 -96
  179. data/test/minitest_result.rb +0 -48
  180. data/test/simple_counter.rb +0 -11
  181. data/test/test_helper.rb +0 -58
  182. data/test/test_runner.rb +0 -58
  183. data/test/test_unit_result.rb +0 -22
  184. data/test/unit/any_instance_method_test.rb +0 -175
  185. data/test/unit/array_inspect_test.rb +0 -14
  186. data/test/unit/backtrace_filter_test.rb +0 -17
  187. data/test/unit/cardinality_test.rb +0 -72
  188. data/test/unit/central_test.rb +0 -98
  189. data/test/unit/change_state_side_effect_test.rb +0 -37
  190. data/test/unit/class_methods_test.rb +0 -69
  191. data/test/unit/configuration_test.rb +0 -37
  192. data/test/unit/date_time_inspect_test.rb +0 -19
  193. data/test/unit/exception_raiser_test.rb +0 -45
  194. data/test/unit/expectation_list_test.rb +0 -82
  195. data/test/unit/expectation_test.rb +0 -492
  196. data/test/unit/hash_inspect_test.rb +0 -14
  197. data/test/unit/hooks_test.rb +0 -35
  198. data/test/unit/in_state_ordering_constraint_test.rb +0 -39
  199. data/test/unit/instance_method_test.rb +0 -282
  200. data/test/unit/method_matcher_test.rb +0 -26
  201. data/test/unit/mock_test.rb +0 -372
  202. data/test/unit/mockery_test.rb +0 -171
  203. data/test/unit/module_methods_test.rb +0 -16
  204. data/test/unit/multiple_yields_test.rb +0 -16
  205. data/test/unit/no_yields_test.rb +0 -16
  206. data/test/unit/object_inspect_test.rb +0 -60
  207. data/test/unit/object_methods_test.rb +0 -63
  208. data/test/unit/parameter_matchers/all_of_test.rb +0 -24
  209. data/test/unit/parameter_matchers/any_of_test.rb +0 -24
  210. data/test/unit/parameter_matchers/anything_test.rb +0 -19
  211. data/test/unit/parameter_matchers/equals_test.rb +0 -23
  212. data/test/unit/parameter_matchers/equivalent_uri_test.rb +0 -41
  213. data/test/unit/parameter_matchers/has_entries_test.rb +0 -51
  214. data/test/unit/parameter_matchers/has_entry_test.rb +0 -128
  215. data/test/unit/parameter_matchers/has_key_test.rb +0 -54
  216. data/test/unit/parameter_matchers/has_value_test.rb +0 -55
  217. data/test/unit/parameter_matchers/includes_test.rb +0 -106
  218. data/test/unit/parameter_matchers/instance_of_test.rb +0 -23
  219. data/test/unit/parameter_matchers/is_a_test.rb +0 -23
  220. data/test/unit/parameter_matchers/kind_of_test.rb +0 -23
  221. data/test/unit/parameter_matchers/not_test.rb +0 -24
  222. data/test/unit/parameter_matchers/regexp_matches_test.rb +0 -45
  223. data/test/unit/parameter_matchers/responds_with_test.rb +0 -38
  224. data/test/unit/parameter_matchers/stub_matcher.rb +0 -23
  225. data/test/unit/parameter_matchers/yaml_equivalent_test.rb +0 -23
  226. data/test/unit/parameters_matcher_test.rb +0 -119
  227. data/test/unit/receivers_test.rb +0 -96
  228. data/test/unit/return_values_test.rb +0 -66
  229. data/test/unit/sequence_test.rb +0 -100
  230. data/test/unit/single_return_value_test.rb +0 -17
  231. data/test/unit/single_yield_test.rb +0 -16
  232. data/test/unit/state_machine_test.rb +0 -96
  233. data/test/unit/string_inspect_test.rb +0 -9
  234. data/test/unit/thrower_test.rb +0 -23
  235. data/test/unit/yield_parameters_test.rb +0 -91
@@ -1,765 +0,0 @@
1
- <!DOCTYPE html>
2
- <html>
3
- <head>
4
- <meta charset="utf-8">
5
- <meta name="viewport" content="width=device-width, initial-scale=1.0">
6
- <title>
7
- Module: Mocha::ObjectMethods
8
-
9
- &mdash; Mocha 1.10.2
10
-
11
- </title>
12
-
13
- <link rel="stylesheet" href="../css/style.css" type="text/css" charset="utf-8" />
14
-
15
- <link rel="stylesheet" href="../css/common.css" type="text/css" charset="utf-8" />
16
-
17
- <script type="text/javascript" charset="utf-8">
18
- pathId = "Mocha::ObjectMethods";
19
- relpath = '../';
20
- </script>
21
-
22
-
23
- <script type="text/javascript" charset="utf-8" src="../js/jquery.js"></script>
24
-
25
- <script type="text/javascript" charset="utf-8" src="../js/app.js"></script>
26
-
27
-
28
- </head>
29
- <body>
30
- <div class="nav_wrap">
31
- <iframe id="nav" src="../class_list.html?1"></iframe>
32
- <div id="resizer"></div>
33
- </div>
34
-
35
- <div id="main" tabindex="-1">
36
- <div id="header">
37
- <div id="menu">
38
-
39
- <a href="../_index.html">Index (O)</a> &raquo;
40
- <span class='title'><span class='object_link'><a href="../Mocha.html" title="Mocha (module)">Mocha</a></span></span>
41
- &raquo;
42
- <span class="title">ObjectMethods</span>
43
-
44
- </div>
45
-
46
- <div id="search">
47
-
48
- <a class="full_list_link" id="class_list_link"
49
- href="../class_list.html">
50
-
51
- <svg width="24" height="24">
52
- <rect x="0" y="4" width="24" height="4" rx="1" ry="1"></rect>
53
- <rect x="0" y="12" width="24" height="4" rx="1" ry="1"></rect>
54
- <rect x="0" y="20" width="24" height="4" rx="1" ry="1"></rect>
55
- </svg>
56
- </a>
57
-
58
- </div>
59
- <div class="clear"></div>
60
- </div>
61
-
62
- <div id="content"><h1>Module: Mocha::ObjectMethods
63
-
64
-
65
-
66
- </h1>
67
- <div class="box_info">
68
-
69
-
70
-
71
-
72
-
73
-
74
-
75
-
76
-
77
-
78
-
79
- <dl>
80
- <dt>Defined in:</dt>
81
- <dd>lib/mocha/object_methods.rb</dd>
82
- </dl>
83
-
84
- </div>
85
-
86
- <h2>Overview</h2><div class="docstring">
87
- <div class="discussion">
88
-
89
- <p>Methods added to all objects to allow mocking and stubbing on real (i.e. non-mock) objects.</p>
90
-
91
- <p>Both <span class='object_link'><a href="#expects-instance_method" title="Mocha::ObjectMethods#expects (method)">#expects</a></span> and <span class='object_link'><a href="#stubs-instance_method" title="Mocha::ObjectMethods#stubs (method)">#stubs</a></span> return an <span class='object_link'><a href="Expectation.html" title="Mocha::Expectation (class)">Expectation</a></span> which can be further modified by methods on <span class='object_link'><a href="Expectation.html" title="Mocha::Expectation (class)">Expectation</a></span>.</p>
92
-
93
-
94
- </div>
95
- </div>
96
- <div class="tags">
97
-
98
-
99
- </div>
100
-
101
-
102
-
103
-
104
-
105
-
106
-
107
- <h2>
108
- Instance Method Summary
109
- <small><a href="#" class="summary_toggle">collapse</a></small>
110
- </h2>
111
-
112
- <ul class="summary">
113
-
114
- <li class="public ">
115
- <span class="summary_signature">
116
-
117
- <a href="#expects-instance_method" title="#expects (instance method)">#<strong>expects</strong>(expected_methods_vs_return_values) &#x21d2; Expectation </a>
118
-
119
-
120
-
121
- </span>
122
-
123
-
124
-
125
-
126
-
127
-
128
-
129
-
130
-
131
- <span class="summary_desc"><div class='inline'>
132
- <p>Adds an expectation that the specified method must be called exactly once with any parameters.</p>
133
- </div></span>
134
-
135
- </li>
136
-
137
-
138
- <li class="public ">
139
- <span class="summary_signature">
140
-
141
- <a href="#stubs-instance_method" title="#stubs (instance method)">#<strong>stubs</strong>(stubbed_methods_vs_return_values) &#x21d2; Expectation </a>
142
-
143
-
144
-
145
- </span>
146
-
147
-
148
-
149
-
150
-
151
-
152
-
153
-
154
-
155
- <span class="summary_desc"><div class='inline'>
156
- <p>Adds an expectation that the specified method may be called any number of times with any parameters.</p>
157
- </div></span>
158
-
159
- </li>
160
-
161
-
162
- <li class="public ">
163
- <span class="summary_signature">
164
-
165
- <a href="#unstub-instance_method" title="#unstub (instance method)">#<strong>unstub</strong>(*method_names) &#x21d2; Object </a>
166
-
167
-
168
-
169
- </span>
170
-
171
-
172
-
173
-
174
-
175
-
176
-
177
-
178
-
179
- <span class="summary_desc"><div class='inline'>
180
- <p>Removes the specified stubbed methods (added by calls to <span class='object_link'><a href="#expects-instance_method" title="Mocha::ObjectMethods#expects (method)">#expects</a></span> or <span class='object_link'><a href="#stubs-instance_method" title="Mocha::ObjectMethods#stubs (method)">#stubs</a></span>) and all expectations associated with them.</p>
181
- </div></span>
182
-
183
- </li>
184
-
185
-
186
- </ul>
187
-
188
-
189
-
190
-
191
- <div id="instance_method_details" class="method_details_list">
192
- <h2>Instance Method Details</h2>
193
-
194
-
195
- <div class="method_details first">
196
- <h3 class="signature first" id="expects-instance_method">
197
-
198
-
199
- <span class="overload">#<strong>expects</strong>(method_name) &#x21d2; <tt><span class='object_link'><a href="Expectation.html" title="Mocha::Expectation (class)">Expectation</a></span></tt> </span>
200
-
201
- <span class="overload">#<strong>expects</strong>(expected_methods_vs_return_values) &#x21d2; <tt><span class='object_link'><a href="Expectation.html" title="Mocha::Expectation (class)">Expectation</a></span></tt> </span>
202
-
203
-
204
-
205
-
206
-
207
-
208
- </h3><div class="docstring">
209
- <div class="discussion">
210
-
211
- <p>Adds an expectation that the specified method must be called exactly once with any parameters.</p>
212
-
213
- <p>The original implementation of the method is replaced during the test and then restored at the end of the test. The temporary replacement method has the same visibility as the original method.</p>
214
-
215
-
216
- </div>
217
- </div>
218
- <div class="tags">
219
-
220
- <div class="examples">
221
- <p class="tag_title">Examples:</p>
222
-
223
-
224
- <p class="example_title"><div class='inline'>
225
- <p>Setting up an expectation on a non-mock object.</p>
226
- </div></p>
227
-
228
- <pre class="example code"><code><span class='id identifier rubyid_product'>product</span> <span class='op'>=</span> <span class='const'>Product</span><span class='period'>.</span><span class='id identifier rubyid_new'>new</span>
229
- <span class='id identifier rubyid_product'>product</span><span class='period'>.</span><span class='id identifier rubyid_expects'>expects</span><span class='lparen'>(</span><span class='symbol'>:save</span><span class='rparen'>)</span><span class='period'>.</span><span class='id identifier rubyid_returns'>returns</span><span class='lparen'>(</span><span class='kw'>true</span><span class='rparen'>)</span>
230
- <span class='id identifier rubyid_assert_equal'>assert_equal</span> <span class='kw'>true</span><span class='comma'>,</span> <span class='id identifier rubyid_product'>product</span><span class='period'>.</span><span class='id identifier rubyid_save'>save</span></code></pre>
231
-
232
-
233
- <p class="example_title"><div class='inline'>
234
- <p>Setting up multiple expectations on a non-mock object.</p>
235
- </div></p>
236
-
237
- <pre class="example code"><code><span class='id identifier rubyid_product'>product</span> <span class='op'>=</span> <span class='const'>Product</span><span class='period'>.</span><span class='id identifier rubyid_new'>new</span>
238
- <span class='id identifier rubyid_product'>product</span><span class='period'>.</span><span class='id identifier rubyid_expects'>expects</span><span class='lparen'>(</span><span class='symbol'>:valid?</span> <span class='op'>=&gt;</span> <span class='kw'>true</span><span class='comma'>,</span> <span class='symbol'>:save</span> <span class='op'>=&gt;</span> <span class='kw'>true</span><span class='rparen'>)</span>
239
-
240
- <span class='comment'># exactly equivalent to
241
- </span>
242
- <span class='id identifier rubyid_product'>product</span> <span class='op'>=</span> <span class='const'>Product</span><span class='period'>.</span><span class='id identifier rubyid_new'>new</span>
243
- <span class='id identifier rubyid_product'>product</span><span class='period'>.</span><span class='id identifier rubyid_expects'>expects</span><span class='lparen'>(</span><span class='symbol'>:valid?</span><span class='rparen'>)</span><span class='period'>.</span><span class='id identifier rubyid_returns'>returns</span><span class='lparen'>(</span><span class='kw'>true</span><span class='rparen'>)</span>
244
- <span class='id identifier rubyid_product'>product</span><span class='period'>.</span><span class='id identifier rubyid_expects'>expects</span><span class='lparen'>(</span><span class='symbol'>:save</span><span class='rparen'>)</span><span class='period'>.</span><span class='id identifier rubyid_returns'>returns</span><span class='lparen'>(</span><span class='kw'>true</span><span class='rparen'>)</span></code></pre>
245
-
246
- </div>
247
-
248
- <p class="tag_title">Overloads:</p>
249
- <ul class="overload">
250
-
251
-
252
- <li class="overload_item">
253
- <span class="signature">#<strong>expects</strong>(method_name) &#x21d2; <tt><span class='object_link'><a href="Expectation.html" title="Mocha::Expectation (class)">Expectation</a></span></tt> </span>
254
- <div class="docstring">
255
- <div class="discussion">
256
-
257
-
258
- </div>
259
- </div>
260
- <div class="tags">
261
- <p class="tag_title">Parameters:</p>
262
- <ul class="param">
263
-
264
- <li>
265
-
266
- <span class='name'>method_name</span>
267
-
268
-
269
- <span class='type'>(<tt>Symbol</tt>, <tt>String</tt>)</span>
270
-
271
-
272
-
273
- &mdash;
274
- <div class='inline'>
275
- <p>name of expected method</p>
276
- </div>
277
-
278
- </li>
279
-
280
- </ul>
281
-
282
-
283
- </div>
284
- </li>
285
-
286
-
287
- <li class="overload_item">
288
- <span class="signature">#<strong>expects</strong>(expected_methods_vs_return_values) &#x21d2; <tt><span class='object_link'><a href="Expectation.html" title="Mocha::Expectation (class)">Expectation</a></span></tt> </span>
289
- <div class="docstring">
290
- <div class="discussion">
291
-
292
-
293
- </div>
294
- </div>
295
- <div class="tags">
296
- <p class="tag_title">Parameters:</p>
297
- <ul class="param">
298
-
299
- <li>
300
-
301
- <span class='name'>expected_methods_vs_return_values</span>
302
-
303
-
304
- <span class='type'>(<tt>Hash</tt>)</span>
305
-
306
-
307
-
308
- &mdash;
309
- <div class='inline'>
310
- <p>expected method name symbols as keys and corresponding return values as values - these expectations are setup as if <span class='object_link'><a href="#expects-instance_method" title="Mocha::ObjectMethods#expects (method)">#expects</a></span> were called multiple times.</p>
311
- </div>
312
-
313
- </li>
314
-
315
- </ul>
316
-
317
-
318
- </div>
319
- </li>
320
-
321
- </ul>
322
-
323
- <p class="tag_title">Returns:</p>
324
- <ul class="return">
325
-
326
- <li>
327
-
328
-
329
- <span class='type'>(<tt><span class='object_link'><a href="Expectation.html" title="Mocha::Expectation (class)">Expectation</a></span></tt>)</span>
330
-
331
-
332
-
333
- &mdash;
334
- <div class='inline'>
335
- <p>last-built expectation which can be further modified by methods on <span class='object_link'><a href="Expectation.html" title="Mocha::Expectation (class)">Expectation</a></span>.</p>
336
- </div>
337
-
338
- </li>
339
-
340
- </ul>
341
- <p class="tag_title">Raises:</p>
342
- <ul class="raise">
343
-
344
- <li>
345
-
346
-
347
- <span class='type'>(<tt><span class='object_link'><a href="StubbingError.html" title="Mocha::StubbingError (class)">StubbingError</a></span></tt>)</span>
348
-
349
-
350
-
351
- &mdash;
352
- <div class='inline'>
353
- <p>if attempting to stub method which is not allowed.</p>
354
- </div>
355
-
356
- </li>
357
-
358
- </ul>
359
-
360
- <p class="tag_title">See Also:</p>
361
- <ul class="see">
362
-
363
- <li><span class='object_link'><a href="Mock.html#expects-instance_method" title="Mocha::Mock#expects (method)">Mock#expects</a></span></li>
364
-
365
- </ul>
366
-
367
- </div><table class="source_code">
368
- <tr>
369
- <td>
370
- <pre class="lines">
371
-
372
-
373
- 71
374
- 72
375
- 73
376
- 74
377
- 75
378
- 76
379
- 77
380
- 78
381
- 79
382
- 80
383
- 81
384
- 82
385
- 83
386
- 84
387
- 85
388
- 86
389
- 87
390
- 88
391
- 89
392
- 90</pre>
393
- </td>
394
- <td>
395
- <pre class="code"><span class="info file"># File 'lib/mocha/object_methods.rb', line 71</span>
396
-
397
- <span class='kw'>def</span> <span class='id identifier rubyid_expects'>expects</span><span class='lparen'>(</span><span class='id identifier rubyid_expected_methods_vs_return_values'>expected_methods_vs_return_values</span><span class='rparen'>)</span>
398
- <span class='kw'>if</span> <span class='id identifier rubyid_expected_methods_vs_return_values'>expected_methods_vs_return_values</span><span class='period'>.</span><span class='id identifier rubyid_to_s'>to_s</span> <span class='op'>=~</span> <span class='tstring'><span class='regexp_beg'>/</span><span class='tstring_content'>the[^a-z]*spanish[^a-z]*inquisition</span><span class='regexp_end'>/i</span></span>
399
- <span class='id identifier rubyid_raise'>raise</span> <span class='const'><span class='object_link'><a href="ExpectationErrorFactory.html" title="Mocha::ExpectationErrorFactory (class)">ExpectationErrorFactory</a></span></span><span class='period'>.</span><span class='id identifier rubyid_build'>build</span><span class='lparen'>(</span><span class='tstring'><span class='tstring_beg'>&#39;</span><span class='tstring_content'>NOBODY EXPECTS THE SPANISH INQUISITION!</span><span class='tstring_end'>&#39;</span></span><span class='rparen'>)</span>
400
- <span class='kw'>end</span>
401
- <span class='kw'>if</span> <span class='id identifier rubyid_frozen?'>frozen?</span>
402
- <span class='id identifier rubyid_raise'>raise</span> <span class='const'><span class='object_link'><a href="StubbingError.html" title="Mocha::StubbingError (class)">StubbingError</a></span></span><span class='period'>.</span><span class='id identifier rubyid_new'>new</span><span class='lparen'>(</span><span class='tstring'><span class='tstring_beg'>&quot;</span><span class='tstring_content'>can&#39;t stub method on frozen object: </span><span class='embexpr_beg'>#{</span><span class='id identifier rubyid_mocha_inspect'>mocha_inspect</span><span class='embexpr_end'>}</span><span class='tstring_end'>&quot;</span></span><span class='comma'>,</span> <span class='id identifier rubyid_caller'>caller</span><span class='rparen'>)</span>
403
- <span class='kw'>end</span>
404
- <span class='id identifier rubyid_expectation'>expectation</span> <span class='op'>=</span> <span class='kw'>nil</span>
405
- <span class='id identifier rubyid_mockery'>mockery</span> <span class='op'>=</span> <span class='const'><span class='object_link'><a href="../Mocha.html" title="Mocha (module)">Mocha</a></span></span><span class='op'>::</span><span class='const'>Mockery</span><span class='period'>.</span><span class='id identifier rubyid_instance'>instance</span>
406
- <span class='id identifier rubyid_iterator'>iterator</span> <span class='op'>=</span> <span class='const'>ArgumentIterator</span><span class='period'>.</span><span class='id identifier rubyid_new'>new</span><span class='lparen'>(</span><span class='id identifier rubyid_expected_methods_vs_return_values'>expected_methods_vs_return_values</span><span class='rparen'>)</span>
407
- <span class='id identifier rubyid_iterator'>iterator</span><span class='period'>.</span><span class='id identifier rubyid_each'>each</span> <span class='kw'>do</span> <span class='op'>|</span><span class='op'>*</span><span class='id identifier rubyid_args'>args</span><span class='op'>|</span>
408
- <span class='id identifier rubyid_method_name'>method_name</span> <span class='op'>=</span> <span class='id identifier rubyid_args'>args</span><span class='period'>.</span><span class='id identifier rubyid_shift'>shift</span>
409
- <span class='id identifier rubyid_mockery'>mockery</span><span class='period'>.</span><span class='id identifier rubyid_on_stubbing'>on_stubbing</span><span class='lparen'>(</span><span class='kw'>self</span><span class='comma'>,</span> <span class='id identifier rubyid_method_name'>method_name</span><span class='rparen'>)</span>
410
- <span class='id identifier rubyid_method'>method</span> <span class='op'>=</span> <span class='id identifier rubyid_stubba_method'>stubba_method</span><span class='period'>.</span><span class='id identifier rubyid_new'>new</span><span class='lparen'>(</span><span class='id identifier rubyid_stubba_object'>stubba_object</span><span class='comma'>,</span> <span class='id identifier rubyid_method_name'>method_name</span><span class='rparen'>)</span>
411
- <span class='id identifier rubyid_mockery'>mockery</span><span class='period'>.</span><span class='id identifier rubyid_stubba'>stubba</span><span class='period'>.</span><span class='id identifier rubyid_stub'>stub</span><span class='lparen'>(</span><span class='id identifier rubyid_method'>method</span><span class='rparen'>)</span>
412
- <span class='id identifier rubyid_expectation'>expectation</span> <span class='op'>=</span> <span class='id identifier rubyid_mocha'>mocha</span><span class='period'>.</span><span class='id identifier rubyid_expects'>expects</span><span class='lparen'>(</span><span class='id identifier rubyid_method_name'>method_name</span><span class='comma'>,</span> <span class='id identifier rubyid_caller'>caller</span><span class='rparen'>)</span>
413
- <span class='id identifier rubyid_expectation'>expectation</span><span class='period'>.</span><span class='id identifier rubyid_returns'>returns</span><span class='lparen'>(</span><span class='id identifier rubyid_args'>args</span><span class='period'>.</span><span class='id identifier rubyid_shift'>shift</span><span class='rparen'>)</span> <span class='kw'>unless</span> <span class='id identifier rubyid_args'>args</span><span class='period'>.</span><span class='id identifier rubyid_empty?'>empty?</span>
414
- <span class='kw'>end</span>
415
- <span class='id identifier rubyid_expectation'>expectation</span>
416
- <span class='kw'>end</span></pre>
417
- </td>
418
- </tr>
419
- </table>
420
- </div>
421
-
422
- <div class="method_details ">
423
- <h3 class="signature " id="stubs-instance_method">
424
-
425
-
426
- <span class="overload">#<strong>stubs</strong>(method_name) &#x21d2; <tt><span class='object_link'><a href="Expectation.html" title="Mocha::Expectation (class)">Expectation</a></span></tt> </span>
427
-
428
- <span class="overload">#<strong>stubs</strong>(stubbed_methods_vs_return_values) &#x21d2; <tt><span class='object_link'><a href="Expectation.html" title="Mocha::Expectation (class)">Expectation</a></span></tt> </span>
429
-
430
-
431
-
432
-
433
-
434
-
435
- </h3><div class="docstring">
436
- <div class="discussion">
437
-
438
- <p>Adds an expectation that the specified method may be called any number of times with any parameters.</p>
439
-
440
- <p>The original implementation of the method is replaced during the test and then restored at the end of the test. The temporary replacement method has the same visibility as the original method.</p>
441
-
442
-
443
- </div>
444
- </div>
445
- <div class="tags">
446
-
447
- <div class="examples">
448
- <p class="tag_title">Examples:</p>
449
-
450
-
451
- <p class="example_title"><div class='inline'>
452
- <p>Setting up a stubbed methods on a non-mock object.</p>
453
- </div></p>
454
-
455
- <pre class="example code"><code><span class='id identifier rubyid_product'>product</span> <span class='op'>=</span> <span class='const'>Product</span><span class='period'>.</span><span class='id identifier rubyid_new'>new</span>
456
- <span class='id identifier rubyid_product'>product</span><span class='period'>.</span><span class='id identifier rubyid_stubs'>stubs</span><span class='lparen'>(</span><span class='symbol'>:save</span><span class='rparen'>)</span><span class='period'>.</span><span class='id identifier rubyid_returns'>returns</span><span class='lparen'>(</span><span class='kw'>true</span><span class='rparen'>)</span>
457
- <span class='id identifier rubyid_assert_equal'>assert_equal</span> <span class='kw'>true</span><span class='comma'>,</span> <span class='id identifier rubyid_product'>product</span><span class='period'>.</span><span class='id identifier rubyid_save'>save</span></code></pre>
458
-
459
-
460
- <p class="example_title"><div class='inline'>
461
- <p>Setting up multiple stubbed methods on a non-mock object.</p>
462
- </div></p>
463
-
464
- <pre class="example code"><code><span class='id identifier rubyid_product'>product</span> <span class='op'>=</span> <span class='const'>Product</span><span class='period'>.</span><span class='id identifier rubyid_new'>new</span>
465
- <span class='id identifier rubyid_product'>product</span><span class='period'>.</span><span class='id identifier rubyid_stubs'>stubs</span><span class='lparen'>(</span><span class='symbol'>:valid?</span> <span class='op'>=&gt;</span> <span class='kw'>true</span><span class='comma'>,</span> <span class='symbol'>:save</span> <span class='op'>=&gt;</span> <span class='kw'>true</span><span class='rparen'>)</span>
466
-
467
- <span class='comment'># exactly equivalent to
468
- </span>
469
- <span class='id identifier rubyid_product'>product</span> <span class='op'>=</span> <span class='const'>Product</span><span class='period'>.</span><span class='id identifier rubyid_new'>new</span>
470
- <span class='id identifier rubyid_product'>product</span><span class='period'>.</span><span class='id identifier rubyid_stubs'>stubs</span><span class='lparen'>(</span><span class='symbol'>:valid?</span><span class='rparen'>)</span><span class='period'>.</span><span class='id identifier rubyid_returns'>returns</span><span class='lparen'>(</span><span class='kw'>true</span><span class='rparen'>)</span>
471
- <span class='id identifier rubyid_product'>product</span><span class='period'>.</span><span class='id identifier rubyid_stubs'>stubs</span><span class='lparen'>(</span><span class='symbol'>:save</span><span class='rparen'>)</span><span class='period'>.</span><span class='id identifier rubyid_returns'>returns</span><span class='lparen'>(</span><span class='kw'>true</span><span class='rparen'>)</span></code></pre>
472
-
473
- </div>
474
-
475
- <p class="tag_title">Overloads:</p>
476
- <ul class="overload">
477
-
478
-
479
- <li class="overload_item">
480
- <span class="signature">#<strong>stubs</strong>(method_name) &#x21d2; <tt><span class='object_link'><a href="Expectation.html" title="Mocha::Expectation (class)">Expectation</a></span></tt> </span>
481
- <div class="docstring">
482
- <div class="discussion">
483
-
484
-
485
- </div>
486
- </div>
487
- <div class="tags">
488
- <p class="tag_title">Parameters:</p>
489
- <ul class="param">
490
-
491
- <li>
492
-
493
- <span class='name'>method_name</span>
494
-
495
-
496
- <span class='type'>(<tt>Symbol</tt>, <tt>String</tt>)</span>
497
-
498
-
499
-
500
- &mdash;
501
- <div class='inline'>
502
- <p>name of stubbed method</p>
503
- </div>
504
-
505
- </li>
506
-
507
- </ul>
508
-
509
-
510
- </div>
511
- </li>
512
-
513
-
514
- <li class="overload_item">
515
- <span class="signature">#<strong>stubs</strong>(stubbed_methods_vs_return_values) &#x21d2; <tt><span class='object_link'><a href="Expectation.html" title="Mocha::Expectation (class)">Expectation</a></span></tt> </span>
516
- <div class="docstring">
517
- <div class="discussion">
518
-
519
-
520
- </div>
521
- </div>
522
- <div class="tags">
523
- <p class="tag_title">Parameters:</p>
524
- <ul class="param">
525
-
526
- <li>
527
-
528
- <span class='name'>stubbed_methods_vs_return_values</span>
529
-
530
-
531
- <span class='type'>(<tt>Hash</tt>)</span>
532
-
533
-
534
-
535
- &mdash;
536
- <div class='inline'>
537
- <p>stubbed method name symbols as keys and corresponding return values as values - these stubbed methods are setup as if <span class='object_link'><a href="#stubs-instance_method" title="Mocha::ObjectMethods#stubs (method)">#stubs</a></span> were called multiple times.</p>
538
- </div>
539
-
540
- </li>
541
-
542
- </ul>
543
-
544
-
545
- </div>
546
- </li>
547
-
548
- </ul>
549
-
550
- <p class="tag_title">Returns:</p>
551
- <ul class="return">
552
-
553
- <li>
554
-
555
-
556
- <span class='type'>(<tt><span class='object_link'><a href="Expectation.html" title="Mocha::Expectation (class)">Expectation</a></span></tt>)</span>
557
-
558
-
559
-
560
- &mdash;
561
- <div class='inline'>
562
- <p>last-built expectation which can be further modified by methods on <span class='object_link'><a href="Expectation.html" title="Mocha::Expectation (class)">Expectation</a></span>.</p>
563
- </div>
564
-
565
- </li>
566
-
567
- </ul>
568
- <p class="tag_title">Raises:</p>
569
- <ul class="raise">
570
-
571
- <li>
572
-
573
-
574
- <span class='type'>(<tt><span class='object_link'><a href="StubbingError.html" title="Mocha::StubbingError (class)">StubbingError</a></span></tt>)</span>
575
-
576
-
577
-
578
- &mdash;
579
- <div class='inline'>
580
- <p>if attempting to stub method which is not allowed.</p>
581
- </div>
582
-
583
- </li>
584
-
585
- </ul>
586
-
587
- <p class="tag_title">See Also:</p>
588
- <ul class="see">
589
-
590
- <li><span class='object_link'><a href="Mock.html#stubs-instance_method" title="Mocha::Mock#stubs (method)">Mock#stubs</a></span></li>
591
-
592
- </ul>
593
-
594
- </div><table class="source_code">
595
- <tr>
596
- <td>
597
- <pre class="lines">
598
-
599
-
600
- 120
601
- 121
602
- 122
603
- 123
604
- 124
605
- 125
606
- 126
607
- 127
608
- 128
609
- 129
610
- 130
611
- 131
612
- 132
613
- 133
614
- 134
615
- 135
616
- 136</pre>
617
- </td>
618
- <td>
619
- <pre class="code"><span class="info file"># File 'lib/mocha/object_methods.rb', line 120</span>
620
-
621
- <span class='kw'>def</span> <span class='id identifier rubyid_stubs'>stubs</span><span class='lparen'>(</span><span class='id identifier rubyid_stubbed_methods_vs_return_values'>stubbed_methods_vs_return_values</span><span class='rparen'>)</span>
622
- <span class='kw'>if</span> <span class='id identifier rubyid_frozen?'>frozen?</span>
623
- <span class='id identifier rubyid_raise'>raise</span> <span class='const'><span class='object_link'><a href="StubbingError.html" title="Mocha::StubbingError (class)">StubbingError</a></span></span><span class='period'>.</span><span class='id identifier rubyid_new'>new</span><span class='lparen'>(</span><span class='tstring'><span class='tstring_beg'>&quot;</span><span class='tstring_content'>can&#39;t stub method on frozen object: </span><span class='embexpr_beg'>#{</span><span class='id identifier rubyid_mocha_inspect'>mocha_inspect</span><span class='embexpr_end'>}</span><span class='tstring_end'>&quot;</span></span><span class='comma'>,</span> <span class='id identifier rubyid_caller'>caller</span><span class='rparen'>)</span>
624
- <span class='kw'>end</span>
625
- <span class='id identifier rubyid_expectation'>expectation</span> <span class='op'>=</span> <span class='kw'>nil</span>
626
- <span class='id identifier rubyid_mockery'>mockery</span> <span class='op'>=</span> <span class='const'><span class='object_link'><a href="../Mocha.html" title="Mocha (module)">Mocha</a></span></span><span class='op'>::</span><span class='const'>Mockery</span><span class='period'>.</span><span class='id identifier rubyid_instance'>instance</span>
627
- <span class='id identifier rubyid_iterator'>iterator</span> <span class='op'>=</span> <span class='const'>ArgumentIterator</span><span class='period'>.</span><span class='id identifier rubyid_new'>new</span><span class='lparen'>(</span><span class='id identifier rubyid_stubbed_methods_vs_return_values'>stubbed_methods_vs_return_values</span><span class='rparen'>)</span>
628
- <span class='id identifier rubyid_iterator'>iterator</span><span class='period'>.</span><span class='id identifier rubyid_each'>each</span> <span class='kw'>do</span> <span class='op'>|</span><span class='op'>*</span><span class='id identifier rubyid_args'>args</span><span class='op'>|</span>
629
- <span class='id identifier rubyid_method_name'>method_name</span> <span class='op'>=</span> <span class='id identifier rubyid_args'>args</span><span class='period'>.</span><span class='id identifier rubyid_shift'>shift</span>
630
- <span class='id identifier rubyid_mockery'>mockery</span><span class='period'>.</span><span class='id identifier rubyid_on_stubbing'>on_stubbing</span><span class='lparen'>(</span><span class='kw'>self</span><span class='comma'>,</span> <span class='id identifier rubyid_method_name'>method_name</span><span class='rparen'>)</span>
631
- <span class='id identifier rubyid_method'>method</span> <span class='op'>=</span> <span class='id identifier rubyid_stubba_method'>stubba_method</span><span class='period'>.</span><span class='id identifier rubyid_new'>new</span><span class='lparen'>(</span><span class='id identifier rubyid_stubba_object'>stubba_object</span><span class='comma'>,</span> <span class='id identifier rubyid_method_name'>method_name</span><span class='rparen'>)</span>
632
- <span class='id identifier rubyid_mockery'>mockery</span><span class='period'>.</span><span class='id identifier rubyid_stubba'>stubba</span><span class='period'>.</span><span class='id identifier rubyid_stub'>stub</span><span class='lparen'>(</span><span class='id identifier rubyid_method'>method</span><span class='rparen'>)</span>
633
- <span class='id identifier rubyid_expectation'>expectation</span> <span class='op'>=</span> <span class='id identifier rubyid_mocha'>mocha</span><span class='period'>.</span><span class='id identifier rubyid_stubs'>stubs</span><span class='lparen'>(</span><span class='id identifier rubyid_method_name'>method_name</span><span class='comma'>,</span> <span class='id identifier rubyid_caller'>caller</span><span class='rparen'>)</span>
634
- <span class='id identifier rubyid_expectation'>expectation</span><span class='period'>.</span><span class='id identifier rubyid_returns'>returns</span><span class='lparen'>(</span><span class='id identifier rubyid_args'>args</span><span class='period'>.</span><span class='id identifier rubyid_shift'>shift</span><span class='rparen'>)</span> <span class='kw'>unless</span> <span class='id identifier rubyid_args'>args</span><span class='period'>.</span><span class='id identifier rubyid_empty?'>empty?</span>
635
- <span class='kw'>end</span>
636
- <span class='id identifier rubyid_expectation'>expectation</span>
637
- <span class='kw'>end</span></pre>
638
- </td>
639
- </tr>
640
- </table>
641
- </div>
642
-
643
- <div class="method_details ">
644
- <h3 class="signature " id="unstub-instance_method">
645
-
646
- #<strong>unstub</strong>(*method_names) &#x21d2; <tt><span class='object_link'>Object</span></tt>
647
-
648
-
649
-
650
-
651
-
652
- </h3><div class="docstring">
653
- <div class="discussion">
654
-
655
- <p>Removes the specified stubbed methods (added by calls to <span class='object_link'><a href="#expects-instance_method" title="Mocha::ObjectMethods#expects (method)">#expects</a></span> or <span class='object_link'><a href="#stubs-instance_method" title="Mocha::ObjectMethods#stubs (method)">#stubs</a></span>) and all expectations associated with them.</p>
656
-
657
- <p>Restores the original behaviour of the methods before they were stubbed. This is normally done automatically at the end of each test, but in some circumstances you may want to do it <strong>before</strong> the end of the test.</p>
658
-
659
- <p>WARNING: If you <span class='object_link'><a href="#unstub-instance_method" title="Mocha::ObjectMethods#unstub (method)">#unstub</a></span> a method which still has unsatisfied expectations, you may be removing the only way those expectations can be satisfied. Use <span class='object_link'><a href="#unstub-instance_method" title="Mocha::ObjectMethods#unstub (method)">#unstub</a></span> with care.</p>
660
-
661
-
662
- </div>
663
- </div>
664
- <div class="tags">
665
-
666
- <div class="examples">
667
- <p class="tag_title">Examples:</p>
668
-
669
-
670
- <p class="example_title"><div class='inline'>
671
- <p>Stubbing and unstubbing a method on a real (non-mock) object.</p>
672
- </div></p>
673
-
674
- <pre class="example code"><code><span class='id identifier rubyid_multiplier'>multiplier</span> <span class='op'>=</span> <span class='const'>Multiplier</span><span class='period'>.</span><span class='id identifier rubyid_new'>new</span>
675
- <span class='id identifier rubyid_multiplier'>multiplier</span><span class='period'>.</span><span class='id identifier rubyid_double'>double</span><span class='lparen'>(</span><span class='int'>2</span><span class='rparen'>)</span> <span class='comment'># =&gt; 4
676
- </span><span class='id identifier rubyid_multiplier'>multiplier</span><span class='period'>.</span><span class='id identifier rubyid_stubs'>stubs</span><span class='lparen'>(</span><span class='symbol'>:double</span><span class='rparen'>)</span><span class='period'>.</span><span class='id identifier rubyid_raises'>raises</span> <span class='comment'># new behaviour defined
677
- </span><span class='id identifier rubyid_multiplier'>multiplier</span><span class='period'>.</span><span class='id identifier rubyid_double'>double</span><span class='lparen'>(</span><span class='int'>2</span><span class='rparen'>)</span> <span class='comment'># =&gt; raises exception
678
- </span><span class='id identifier rubyid_multiplier'>multiplier</span><span class='period'>.</span><span class='id identifier rubyid_unstub'>unstub</span><span class='lparen'>(</span><span class='symbol'>:double</span><span class='rparen'>)</span> <span class='comment'># original behaviour restored
679
- </span><span class='id identifier rubyid_multiplier'>multiplier</span><span class='period'>.</span><span class='id identifier rubyid_double'>double</span><span class='lparen'>(</span><span class='int'>2</span><span class='rparen'>)</span> <span class='comment'># =&gt; 4</span></code></pre>
680
-
681
-
682
- <p class="example_title"><div class='inline'>
683
- <p>Unstubbing multiple methods on a real (non-mock) object.</p>
684
- </div></p>
685
-
686
- <pre class="example code"><code><span class='id identifier rubyid_multiplier'>multiplier</span><span class='period'>.</span><span class='id identifier rubyid_unstub'>unstub</span><span class='lparen'>(</span><span class='symbol'>:double</span><span class='comma'>,</span> <span class='symbol'>:triple</span><span class='rparen'>)</span>
687
-
688
- <span class='comment'># exactly equivalent to
689
- </span>
690
- <span class='id identifier rubyid_multiplier'>multiplier</span><span class='period'>.</span><span class='id identifier rubyid_unstub'>unstub</span><span class='lparen'>(</span><span class='symbol'>:double</span><span class='rparen'>)</span>
691
- <span class='id identifier rubyid_multiplier'>multiplier</span><span class='period'>.</span><span class='id identifier rubyid_unstub'>unstub</span><span class='lparen'>(</span><span class='symbol'>:triple</span><span class='rparen'>)</span></code></pre>
692
-
693
- </div>
694
- <p class="tag_title">Parameters:</p>
695
- <ul class="param">
696
-
697
- <li>
698
-
699
- <span class='name'>method_names</span>
700
-
701
-
702
- <span class='type'>(<tt>Array&lt;Symbol&gt;</tt>)</span>
703
-
704
-
705
-
706
- &mdash;
707
- <div class='inline'>
708
- <p>names of methods to unstub.</p>
709
- </div>
710
-
711
- </li>
712
-
713
- </ul>
714
-
715
-
716
- </div><table class="source_code">
717
- <tr>
718
- <td>
719
- <pre class="lines">
720
-
721
-
722
- 161
723
- 162
724
- 163
725
- 164
726
- 165
727
- 166
728
- 167</pre>
729
- </td>
730
- <td>
731
- <pre class="code"><span class="info file"># File 'lib/mocha/object_methods.rb', line 161</span>
732
-
733
- <span class='kw'>def</span> <span class='id identifier rubyid_unstub'>unstub</span><span class='lparen'>(</span><span class='op'>*</span><span class='id identifier rubyid_method_names'>method_names</span><span class='rparen'>)</span>
734
- <span class='id identifier rubyid_mockery'>mockery</span> <span class='op'>=</span> <span class='const'><span class='object_link'><a href="../Mocha.html" title="Mocha (module)">Mocha</a></span></span><span class='op'>::</span><span class='const'>Mockery</span><span class='period'>.</span><span class='id identifier rubyid_instance'>instance</span>
735
- <span class='id identifier rubyid_method_names'>method_names</span><span class='period'>.</span><span class='id identifier rubyid_each'>each</span> <span class='kw'>do</span> <span class='op'>|</span><span class='id identifier rubyid_method_name'>method_name</span><span class='op'>|</span>
736
- <span class='id identifier rubyid_method'>method</span> <span class='op'>=</span> <span class='id identifier rubyid_stubba_method'>stubba_method</span><span class='period'>.</span><span class='id identifier rubyid_new'>new</span><span class='lparen'>(</span><span class='id identifier rubyid_stubba_object'>stubba_object</span><span class='comma'>,</span> <span class='id identifier rubyid_method_name'>method_name</span><span class='rparen'>)</span>
737
- <span class='id identifier rubyid_mockery'>mockery</span><span class='period'>.</span><span class='id identifier rubyid_stubba'>stubba</span><span class='period'>.</span><span class='id identifier rubyid_unstub'>unstub</span><span class='lparen'>(</span><span class='id identifier rubyid_method'>method</span><span class='rparen'>)</span>
738
- <span class='kw'>end</span>
739
- <span class='kw'>end</span></pre>
740
- </td>
741
- </tr>
742
- </table>
743
- </div>
744
-
745
- </div>
746
-
747
- <script async src="https://www.googletagmanager.com/gtag/js?id=UA-625523-7"></script>
748
- <script>
749
- window.dataLayer = window.dataLayer || [];
750
- function gtag(){dataLayer.push(arguments);}
751
- gtag('js', new Date());
752
-
753
- gtag('config', 'UA-625523-7');
754
- </script>
755
- </div>
756
-
757
- <div id="footer">
758
- Generated on Thu Dec 12 10:57:47 2019 by
759
- <a href="http://yardoc.org" title="Yay! A Ruby Documentation Tool" target="_parent">yard</a>
760
- 0.9.20 (ruby-2.6.5).
761
- </div>
762
-
763
- </div>
764
- </body>
765
- </html>