mocha 1.9.0 → 1.10.0.alpha

Sign up to get free protection for your applications and to get access to all the features.
Files changed (200) hide show
  1. checksums.yaml +4 -4
  2. data/.rubocop.yml +3 -0
  3. data/.rubocop_todo.yml +7 -30
  4. data/README.md +10 -11
  5. data/RELEASE.md +48 -0
  6. data/Rakefile +9 -3
  7. data/docs/CNAME +1 -0
  8. data/docs/Mocha.html +132 -5
  9. data/docs/Mocha/API.html +289 -216
  10. data/docs/Mocha/ClassMethods.html +88 -16
  11. data/docs/Mocha/Configuration.html +931 -174
  12. data/docs/Mocha/Expectation.html +200 -255
  13. data/docs/Mocha/ExpectationError.html +5 -10
  14. data/docs/Mocha/ExpectationErrorFactory.html +9 -18
  15. data/docs/Mocha/Hooks.html +12 -27
  16. data/docs/Mocha/Integration.html +3 -3
  17. data/docs/Mocha/Integration/MiniTest.html +3 -3
  18. data/docs/Mocha/Integration/MiniTest/Adapter.html +5 -6
  19. data/docs/Mocha/Integration/TestUnit.html +3 -3
  20. data/docs/Mocha/Integration/TestUnit/Adapter.html +5 -6
  21. data/docs/Mocha/Mock.html +202 -162
  22. data/docs/Mocha/ObjectMethods.html +121 -68
  23. data/docs/Mocha/ParameterMatchers.html +21 -109
  24. data/docs/Mocha/ParameterMatchers/AllOf.html +4 -5
  25. data/docs/Mocha/ParameterMatchers/AnyOf.html +4 -5
  26. data/docs/Mocha/ParameterMatchers/AnyParameters.html +3 -3
  27. data/docs/Mocha/ParameterMatchers/Anything.html +3 -3
  28. data/docs/Mocha/ParameterMatchers/Base.html +8 -15
  29. data/docs/Mocha/ParameterMatchers/Equals.html +4 -5
  30. data/docs/Mocha/ParameterMatchers/EquivalentUri.html +3 -3
  31. data/docs/Mocha/ParameterMatchers/HasEntries.html +4 -5
  32. data/docs/Mocha/ParameterMatchers/HasEntry.html +4 -5
  33. data/docs/Mocha/ParameterMatchers/HasKey.html +4 -5
  34. data/docs/Mocha/ParameterMatchers/HasValue.html +4 -5
  35. data/docs/Mocha/ParameterMatchers/Includes.html +4 -5
  36. data/docs/Mocha/ParameterMatchers/InstanceOf.html +4 -5
  37. data/docs/Mocha/ParameterMatchers/IsA.html +3 -3
  38. data/docs/Mocha/ParameterMatchers/KindOf.html +4 -5
  39. data/docs/Mocha/ParameterMatchers/Not.html +4 -5
  40. data/docs/Mocha/ParameterMatchers/Optionally.html +3 -3
  41. data/docs/Mocha/ParameterMatchers/RegexpMatches.html +4 -5
  42. data/docs/Mocha/ParameterMatchers/RespondsWith.html +4 -5
  43. data/docs/Mocha/ParameterMatchers/YamlEquivalent.html +4 -5
  44. data/docs/Mocha/Sequence.html +3 -3
  45. data/docs/Mocha/StateMachine.html +13 -25
  46. data/docs/Mocha/StateMachine/State.html +4 -5
  47. data/docs/Mocha/StateMachine/StatePredicate.html +4 -5
  48. data/docs/Mocha/StubbingError.html +3 -3
  49. data/docs/_index.html +4 -22
  50. data/docs/class_list.html +1 -1
  51. data/docs/file.COPYING.html +3 -3
  52. data/docs/file.MIT-LICENSE.html +3 -3
  53. data/docs/file.README.html +18 -15
  54. data/docs/file.RELEASE.html +58 -3
  55. data/docs/frames.html +1 -1
  56. data/docs/index.html +18 -15
  57. data/docs/method_list.html +103 -39
  58. data/docs/top-level-namespace.html +3 -3
  59. data/gemfiles/Gemfile.minitest.5.11.3 +7 -0
  60. data/init.rb +1 -3
  61. data/lib/mocha.rb +8 -0
  62. data/lib/mocha/any_instance_method.rb +9 -25
  63. data/lib/mocha/api.rb +62 -66
  64. data/lib/mocha/cardinality.rb +26 -11
  65. data/lib/mocha/class_methods.rb +16 -15
  66. data/lib/mocha/configuration.rb +295 -67
  67. data/lib/mocha/detection/test_unit.rb +1 -3
  68. data/lib/mocha/exception_raiser.rb +2 -1
  69. data/lib/mocha/expectation.rb +56 -58
  70. data/lib/mocha/expectation_error.rb +1 -3
  71. data/lib/mocha/expectation_list.rb +6 -6
  72. data/lib/mocha/inspect.rb +28 -26
  73. data/lib/mocha/instance_method.rb +19 -2
  74. data/lib/mocha/integration.rb +1 -3
  75. data/lib/mocha/integration/mini_test.rb +7 -0
  76. data/lib/mocha/integration/test_unit.rb +7 -0
  77. data/lib/mocha/invocation.rb +61 -0
  78. data/lib/mocha/macos_version.rb +5 -0
  79. data/lib/mocha/minitest.rb +6 -1
  80. data/lib/mocha/mock.rb +46 -31
  81. data/lib/mocha/mockery.rb +28 -61
  82. data/lib/mocha/names.rb +1 -1
  83. data/lib/mocha/object_methods.rb +13 -19
  84. data/lib/mocha/parameter_matchers.rb +1 -1
  85. data/lib/mocha/parameter_matchers/all_of.rb +1 -1
  86. data/lib/mocha/parameter_matchers/any_of.rb +1 -1
  87. data/lib/mocha/parameter_matchers/equivalent_uri.rb +0 -9
  88. data/lib/mocha/parameter_matchers/includes.rb +2 -0
  89. data/lib/mocha/parameter_matchers/instance_methods.rb +18 -0
  90. data/lib/mocha/raised_exception.rb +11 -0
  91. data/lib/mocha/return_values.rb +3 -3
  92. data/lib/mocha/setup.rb +5 -0
  93. data/lib/mocha/single_return_value.rb +2 -1
  94. data/lib/mocha/singleton_class.rb +9 -0
  95. data/lib/mocha/{class_method.rb → stubbed_method.rb} +23 -43
  96. data/lib/mocha/test_unit.rb +6 -1
  97. data/lib/mocha/thrower.rb +2 -1
  98. data/lib/mocha/thrown_object.rb +12 -0
  99. data/lib/mocha/version.rb +1 -1
  100. data/mocha.gemspec +1 -3
  101. data/test/acceptance/acceptance_test_helper.rb +6 -0
  102. data/test/acceptance/bug_18914_test.rb +0 -1
  103. data/test/acceptance/bug_21465_test.rb +0 -1
  104. data/test/acceptance/bug_21563_test.rb +0 -1
  105. data/test/acceptance/display_matching_invocations_alongside_expectations_test.rb +69 -0
  106. data/test/acceptance/exception_rescue_test.rb +1 -2
  107. data/test/acceptance/expectations_on_multiple_methods_test.rb +0 -1
  108. data/test/acceptance/expected_invocation_count_test.rb +2 -3
  109. data/test/acceptance/failure_messages_test.rb +0 -1
  110. data/test/acceptance/issue_272_test.rb +1 -2
  111. data/test/acceptance/issue_65_test.rb +0 -1
  112. data/test/acceptance/issue_70_test.rb +0 -1
  113. data/test/acceptance/mocha_example_test.rb +0 -1
  114. data/test/acceptance/mocha_test_result_test.rb +0 -1
  115. data/test/acceptance/mock_test.rb +47 -6
  116. data/test/acceptance/mocked_methods_dispatch_test.rb +0 -1
  117. data/test/acceptance/multiple_expectations_failure_message_test.rb +0 -1
  118. data/test/acceptance/optional_parameters_test.rb +0 -1
  119. data/test/acceptance/parameter_matcher_test.rb +0 -1
  120. data/test/acceptance/partial_mocks_test.rb +0 -1
  121. data/test/acceptance/prepend_test.rb +0 -1
  122. data/test/acceptance/prevent_use_of_mocha_outside_test_test.rb +0 -1
  123. data/test/acceptance/raise_exception_test.rb +0 -1
  124. data/test/acceptance/return_value_test.rb +0 -1
  125. data/test/acceptance/sequence_test.rb +0 -1
  126. data/test/acceptance/states_test.rb +0 -1
  127. data/test/acceptance/stub_any_instance_method_defined_on_superclass_test.rb +1 -2
  128. data/test/acceptance/stub_any_instance_method_test.rb +20 -1
  129. data/test/acceptance/stub_class_method_defined_on_active_record_association_proxy_test.rb +0 -1
  130. data/test/acceptance/stub_class_method_defined_on_class_test.rb +0 -1
  131. data/test/acceptance/stub_class_method_defined_on_module_test.rb +0 -1
  132. data/test/acceptance/stub_class_method_defined_on_superclass_test.rb +1 -2
  133. data/test/acceptance/stub_everything_test.rb +0 -1
  134. data/test/acceptance/stub_instance_method_defined_on_active_record_association_proxy_test.rb +0 -1
  135. data/test/acceptance/stub_instance_method_defined_on_class_and_aliased_test.rb +0 -1
  136. data/test/acceptance/stub_instance_method_defined_on_class_test.rb +0 -1
  137. data/test/acceptance/stub_instance_method_defined_on_kernel_module_test.rb +0 -1
  138. data/test/acceptance/stub_instance_method_defined_on_module_test.rb +0 -1
  139. data/test/acceptance/stub_instance_method_defined_on_object_class_test.rb +0 -1
  140. data/test/acceptance/stub_instance_method_defined_on_singleton_class_test.rb +0 -1
  141. data/test/acceptance/stub_instance_method_defined_on_superclass_test.rb +0 -1
  142. data/test/acceptance/stub_method_defined_on_module_and_aliased_test.rb +0 -1
  143. data/test/acceptance/stub_module_method_test.rb +0 -1
  144. data/test/acceptance/stub_test.rb +0 -1
  145. data/test/acceptance/stubba_example_test.rb +0 -1
  146. data/test/acceptance/stubba_test_result_test.rb +0 -1
  147. data/test/acceptance/stubbing_error_backtrace_test.rb +4 -5
  148. data/test/acceptance/stubbing_frozen_object_test.rb +0 -1
  149. data/test/acceptance/stubbing_method_accepting_block_parameter_test.rb +0 -1
  150. data/test/acceptance/stubbing_method_unnecessarily_test.rb +5 -5
  151. data/test/acceptance/stubbing_nil_test.rb +5 -5
  152. data/test/acceptance/stubbing_non_existent_any_instance_method_test.rb +11 -11
  153. data/test/acceptance/stubbing_non_existent_class_method_test.rb +11 -11
  154. data/test/acceptance/stubbing_non_existent_instance_method_test.rb +11 -11
  155. data/test/acceptance/stubbing_non_public_any_instance_method_test.rb +8 -8
  156. data/test/acceptance/stubbing_non_public_class_method_test.rb +9 -9
  157. data/test/acceptance/stubbing_non_public_instance_method_test.rb +9 -9
  158. data/test/acceptance/stubbing_on_non_mock_object_test.rb +5 -5
  159. data/test/acceptance/stubbing_same_class_method_on_parent_and_child_classes_test.rb +0 -1
  160. data/test/acceptance/throw_test.rb +0 -1
  161. data/test/acceptance/unexpected_invocation_test.rb +0 -1
  162. data/test/acceptance/unstubbing_test.rb +0 -1
  163. data/test/integration/shared_tests.rb +5 -3
  164. data/test/method_definer.rb +11 -17
  165. data/test/test_runner.rb +2 -0
  166. data/test/unit/any_instance_method_test.rb +41 -40
  167. data/test/unit/cardinality_test.rb +41 -23
  168. data/test/unit/central_test.rb +0 -1
  169. data/test/unit/class_methods_test.rb +1 -1
  170. data/test/unit/configuration_test.rb +12 -12
  171. data/test/unit/exception_raiser_test.rb +10 -5
  172. data/test/unit/expectation_list_test.rb +13 -11
  173. data/test/unit/expectation_test.rb +88 -103
  174. data/test/unit/instance_method_test.rb +282 -0
  175. data/test/unit/mock_test.rb +28 -19
  176. data/test/unit/mockery_test.rb +8 -11
  177. data/test/unit/module_methods_test.rb +2 -3
  178. data/test/unit/object_inspect_test.rb +6 -4
  179. data/test/unit/object_methods_test.rb +3 -2
  180. data/test/unit/parameter_matchers/equivalent_uri_test.rb +0 -9
  181. data/test/unit/parameter_matchers/has_entries_test.rb +1 -1
  182. data/test/unit/parameter_matchers/has_entry_test.rb +1 -1
  183. data/test/unit/parameter_matchers/has_key_test.rb +1 -1
  184. data/test/unit/parameter_matchers/has_value_test.rb +1 -1
  185. data/test/unit/parameter_matchers/includes_test.rb +1 -1
  186. data/test/unit/parameter_matchers/responds_with_test.rb +1 -1
  187. data/test/unit/return_values_test.rb +25 -20
  188. data/test/unit/single_return_value_test.rb +6 -1
  189. data/test/unit/thrower_test.rb +7 -2
  190. metadata +16 -30
  191. data/docs/Mocha/UnexpectedInvocation.html +0 -140
  192. data/lib/mocha/mini_test.rb +0 -5
  193. data/lib/mocha/module_method.rb +0 -6
  194. data/lib/mocha/module_methods.rb +0 -10
  195. data/lib/mocha/parameter_matchers/object.rb +0 -15
  196. data/lib/mocha/standalone.rb +0 -4
  197. data/lib/mocha/unexpected_invocation.rb +0 -24
  198. data/lib/mocha_standalone.rb +0 -4
  199. data/test/acceptance/mock_with_initializer_block_test.rb +0 -56
  200. data/test/unit/class_method_test.rb +0 -276
@@ -6,7 +6,7 @@
6
6
  <title>
7
7
  File: README
8
8
 
9
- &mdash; Mocha 1.9.0
9
+ &mdash; Mocha 1.10.0.alpha
10
10
 
11
11
  </title>
12
12
 
@@ -62,12 +62,16 @@
62
62
  <h3>Description</h3>
63
63
 
64
64
  <ul>
65
- <li>A Ruby library for mocking and stubbing.</li>
65
+ <li>A Ruby library for <a href="http://xunitpatterns.com/Mock%20Object.html">mocking</a> and <a href="http://xunitpatterns.com/Test%20Stub.html">stubbing</a> - but deliberately not (yet) <a href="http://xunitpatterns.com/Fake%20Object.html">faking</a> or <a href="http://xunitpatterns.com/Test%20Spy.html">spying</a>.</li>
66
66
  <li>A unified, simple and readable syntax for both full &amp; partial mocking.</li>
67
67
  <li>Built-in support for MiniTest and Test::Unit.</li>
68
68
  <li>Supported by many other test frameworks.</li>
69
69
  </ul>
70
70
 
71
+ <h3>Intended Usage</h3>
72
+
73
+ <p>Mocha is intended to be used in unit tests for the <a href="http://xunitpatterns.com/Mock%20Object.html">Mock Object</a> or <a href="http://xunitpatterns.com/Test%20Stub.html">Test Stub</a> types of <a href="http://xunitpatterns.com/Test%20Double.html">Test Double</a>, not the <a href="http://xunitpatterns.com/Fake%20Object.html">Fake Object</a> or <a href="http://xunitpatterns.com/Test%20Spy.html">Test Spy</a> types. Although it would be possible to extend Mocha to allow the implementation of fakes and spies, we have chosen to keep it focused on mocks and stubs.</p>
74
+
71
75
  <h3>Installation</h3>
72
76
 
73
77
  <h4>Gem</h4>
@@ -147,15 +151,6 @@
147
151
 
148
152
  <p>Note: There is no need to use a require statement to setup Mocha; RSpec does this itself.</p>
149
153
 
150
- <h4>Rails Plugin</h4>
151
-
152
- <p>Install the Rails plugin...</p>
153
-
154
- <pre class="code ruby"><code class="ruby">$ rails plugin install git://github.com/freerange/mocha.git
155
- </code></pre>
156
-
157
- <p>Note: As of version 0.9.8, the Mocha plugin is not automatically setup at plugin load time. Instead it must be manually setup e.g. at the bottom of your <code>test_helper.rb</code>.</p>
158
-
159
154
  <h5>MiniTest</h5>
160
155
 
161
156
  <pre class="code ruby"><code class="ruby"><span class='comment'># At bottom of test_helper.rb (or at least after `require &#39;rails/test_help&#39;`)
@@ -171,7 +166,6 @@
171
166
  <li>0.13.x versions cause a harmless, but annoying, deprecation warning when used with Rails 3.2.0-3.2.12, 3.1.0-3.1.10 &amp; 3.0.0-3.0.19.</li>
172
167
  <li>0.11.x versions don&#39;t work with Rails 3.2.13 (<code>TypeError: superclass mismatch for class ExpectationError</code>). See #115.</li>
173
168
  <li>Versions 0.10.2, 0.10.3 &amp; 0.11.0 of the Mocha gem were broken. Please do not use these versions.</li>
174
- <li>Versions 0.9.6 &amp; 0.9.7 of the Mocha Rails plugin were broken. Please do not use these versions.</li>
175
169
  </ul>
176
170
 
177
171
  <h3>Usage</h3>
@@ -341,6 +335,15 @@
341
335
 
342
336
  <p>See the <a href="https://mocha.jamesmead.org/Mocha/Configuration.html">documentation</a> for <code>Mocha::Configuration</code> for further details.</p>
343
337
 
338
+ <h5>MOCHA_OPTIONS</h5>
339
+
340
+ <p><code>MOCHA_OPTIONS</code> is an environment variable whose value can be set to a comma-separated list, so that we can specify multiple options e.g. <code>MOCHA_OPTIONS=debug,use_test_unit_gem</code>.
341
+ Only the following values are currently recognized and have an effect:</p>
342
+
343
+ <ul>
344
+ <li><code>debug</code>: Enables a debug mode which will output backtraces for each deprecation warning. This is useful for finding where in the test suite the deprecated calls are.</li>
345
+ </ul>
346
+
344
347
  <h3>Useful Links</h3>
345
348
 
346
349
  <ul>
@@ -367,7 +370,7 @@
367
370
  <li>Commit &amp; push to GitHub</li>
368
371
  <li><p>Check Travis CI build is passing - <a href="https://travis-ci.org/freerange/mocha">https://travis-ci.org/freerange/mocha</a></p></li>
369
372
  <li><p>Sign in to Google Analytics - <a href="https://analytics.google.com/analytics/web/">https://analytics.google.com/analytics/web/</a></p></li>
370
- <li><p>Find the web property ID for Go Free Range Ltd &gt; Mocha Documentation (UA-625523-7)</p></li>
373
+ <li><p>Find the web property ID for floehopper (625523) &gt; Mocha Documentation (UA-625523-7)</p></li>
371
374
  <li><p>Generate documentation:</p></li>
372
375
  </ul>
373
376
 
@@ -416,9 +419,9 @@ Pushed mocha 1.2.0 to rubygems.org.
416
419
  </div>
417
420
 
418
421
  <div id="footer">
419
- Generated on Mon Jun 17 18:38:43 2019 by
422
+ Generated on Sun Nov 24 15:26:48 2019 by
420
423
  <a href="http://yardoc.org" title="Yay! A Ruby Documentation Tool" target="_parent">yard</a>
421
- 0.9.19 (ruby-2.5.3).
424
+ 0.9.20 (ruby-2.6.5).
422
425
  </div>
423
426
 
424
427
  </div>
@@ -6,7 +6,7 @@
6
6
  <title>
7
7
  File: RELEASE
8
8
 
9
- &mdash; Mocha 1.9.0
9
+ &mdash; Mocha 1.10.0.alpha
10
10
 
11
11
  </title>
12
12
 
@@ -59,6 +59,61 @@
59
59
 
60
60
  <div id="content"><div id='filecontents'><h1>Release Notes</h1>
61
61
 
62
+ <h2>1.10.0.alpha</h2>
63
+
64
+ <h3>External changes</h3>
65
+
66
+ <ul>
67
+ <li>Remove dependency on metaclass gem (#49, #365)</li>
68
+ <li>Accept symbol (as well as a string) as mock/stub name - thanks to @nitishr (#347, #353, #377)</li>
69
+ <li>More realistic examples in documentation for <code>Expectation#yields</code> and <code>#multiple_yields</code> - thanks to @nitishr (#352, #383)</li>
70
+ <li>Improve documentation for <code>Mock#responds_like</code> &amp; <code>#responds_like_instance_of</code> - thanks to @nitishr (#337, #384)</li>
71
+ <li>Make <code>Expectation#yields</code> &amp; <code>Expectation#multiple_yields</code> fail when the caller of the stubbed method does not provide a block. This is a change to an undocumented aspect of the public API&#39;s behaviour. If this causes your tests to fail, then fix it by removing the unnecessary call to <code>Expectation#yields</code> or <code>Expectation#multiple_yields</code> - thanks to @nitishr (#382)</li>
72
+ <li>Document <code>MOCHA_OPTIONS</code> in README - thanks to @nitishr (#311, #386)</li>
73
+ <li>Add documentation to explain how Mocha is intended to be used - thanks to @nitishr (#330, #385)</li>
74
+ <li>Deprecation warning if integration using &#39;mocha/test_unit&#39; or &#39;mocha/minitest&#39; fails - thanks to @nitishr (#229, #389, c6032d0b)</li>
75
+ <li>Require at least one specified sequence for <code>Expectation#in_sequence</code> - thanks to @nitishr (#79, #396, 9020248a)</li>
76
+ <li>Make signatures of <code>Mock#unstub</code> &amp; <code>ObjectMethods#unstub</code> consistent - thanks to @nitishr (#397, f04d437)</li>
77
+ <li>Deprecate requiring &#39;mocha/setup&#39; (36adf880)</li>
78
+ <li>Optionally display matching invocations alongside expectations - thanks to @nitishr (#178, #394, 00f0540, #410)</li>
79
+ <li>Put deprecations into effect (#400, #418):
80
+
81
+ <ul>
82
+ <li>Remove deprecated &#39;mocha_standalone.rb&#39; &amp; &#39;mocha/standalone.rb&#39;</li>
83
+ <li>Fail fast if no test library loaded</li>
84
+ <li>Removed optional block for <code>Mocha::API#mock</code>, <code>#stub</code> &amp; <code>#stub_everything</code></li>
85
+ <li>Remove deprecated <code>ParameterMatchers#has_equivalent_query_string</code> method</li>
86
+ <li>Remove deprecated &#39;mocha/mini_test.rb&#39;</li>
87
+ </ul></li>
88
+ <li>Fix typo in docs for <code>Mocha::Configuration.prevent</code> (266ce71c)</li>
89
+ <li>New-style configuration (see documentation for <code>Mocha::Configuration</code>) (#407, #421)</li>
90
+ <li>Deprecate support for Ruby versions earlier than v1.9 (#325, c5f8496d)</li>
91
+ <li>Deprecate support for versions of test-unit &amp; minitest which need monkey-patching (a34e1a88)</li>
92
+ <li>Deprecate old-style Rails plugin (#403, 2df77134)</li>
93
+ <li>Documentation fixes &amp; improvements which also fix YARD warnings (472d5416, a2c0d64a)</li>
94
+ </ul>
95
+
96
+ <h3>Internal changes</h3>
97
+
98
+ <ul>
99
+ <li>Pin minitest to v5.11.3 for Ruby v1.8.7 to fix build; minitest no longer supports Ruby v1.8.7 (4a0a580)</li>
100
+ <li>Upgrade JRuby to v9.2.8.0 in Travis CI builds (aa29b3f)</li>
101
+ <li>Only run rubocop for MRI Ruby versions &amp; non-integration test builds (8f1c6af)</li>
102
+ <li>Reduce duplication in any instance method class - thanks to @nitishr (#378)</li>
103
+ <li>Simplify <code>AnyInstanceMethod</code>, <code>ClassMethod</code>, <code>InstanceMethod</code>, <code>ModuleMethod</code> class hierarchy - thanks to @nitishr (#381)</li>
104
+ <li>Simplify <code>ClassMethods#method_exists?</code> &amp; <code>ObjectMethods#method_exists?</code> making them consistent - thanks to @nitishr (#270, #362, #370)</li>
105
+ <li>Don&#39;t override definition of <code>singleton_class</code> in <code>ClassMethods</code> - thanks to @nitishr (#391, #392)</li>
106
+ <li>Do not include &#39;method_definer&#39; methods into all objects (#268, #402)</li>
107
+ <li>Distinguish different <code>ObjectMethods</code> modules (#268, #404)</li>
108
+ <li>Pass invocation to expectation list methods - thanks to @nitishr (#408, #409, #411)</li>
109
+ <li>Consistently use <code>assert_raises</code> - thanks to @nitishr (#405, #412, a66b7bed)</li>
110
+ <li>Update Ruby &amp; JRuby versions in Travis CI config (18cb1a93, eb061c53)</li>
111
+ <li>Rubocop improvements (aa16ea67...6f4db70b, 2a1240e6...e95716ae)</li>
112
+ <li>Fix inconsistency in CardinalityTest (aa10e0a8)</li>
113
+ <li>Fix test failures on Mac OSX Catalina - thanks to @nitishr (#413, #417, #419, 8a0f2535)</li>
114
+ <li>Remove default argument in <code>Expectation#invoke</code> - thanks to @nitishr (#414, #420)</li>
115
+ </ul>
116
+
62
117
  <h2>1.9.0</h2>
63
118
 
64
119
  <ul>
@@ -877,9 +932,9 @@ Hash with wrong number of entries.</li>
877
932
  </div>
878
933
 
879
934
  <div id="footer">
880
- Generated on Mon Jun 17 18:38:43 2019 by
935
+ Generated on Sun Nov 24 15:26:48 2019 by
881
936
  <a href="http://yardoc.org" title="Yay! A Ruby Documentation Tool" target="_parent">yard</a>
882
- 0.9.19 (ruby-2.5.3).
937
+ 0.9.20 (ruby-2.6.5).
883
938
  </div>
884
939
 
885
940
  </div>
@@ -2,7 +2,7 @@
2
2
  <html>
3
3
  <head>
4
4
  <meta charset="utf-8">
5
- <title>Mocha 1.9.0</title>
5
+ <title>Mocha 1.10.0.alpha</title>
6
6
  </head>
7
7
  <script type="text/javascript" charset="utf-8">
8
8
  var match = unescape(window.location.hash).match(/^#!(.+)/);
@@ -6,7 +6,7 @@
6
6
  <title>
7
7
  File: README
8
8
 
9
- &mdash; Mocha 1.9.0
9
+ &mdash; Mocha 1.10.0.alpha
10
10
 
11
11
  </title>
12
12
 
@@ -62,12 +62,16 @@
62
62
  <h3>Description</h3>
63
63
 
64
64
  <ul>
65
- <li>A Ruby library for mocking and stubbing.</li>
65
+ <li>A Ruby library for <a href="http://xunitpatterns.com/Mock%20Object.html">mocking</a> and <a href="http://xunitpatterns.com/Test%20Stub.html">stubbing</a> - but deliberately not (yet) <a href="http://xunitpatterns.com/Fake%20Object.html">faking</a> or <a href="http://xunitpatterns.com/Test%20Spy.html">spying</a>.</li>
66
66
  <li>A unified, simple and readable syntax for both full &amp; partial mocking.</li>
67
67
  <li>Built-in support for MiniTest and Test::Unit.</li>
68
68
  <li>Supported by many other test frameworks.</li>
69
69
  </ul>
70
70
 
71
+ <h3>Intended Usage</h3>
72
+
73
+ <p>Mocha is intended to be used in unit tests for the <a href="http://xunitpatterns.com/Mock%20Object.html">Mock Object</a> or <a href="http://xunitpatterns.com/Test%20Stub.html">Test Stub</a> types of <a href="http://xunitpatterns.com/Test%20Double.html">Test Double</a>, not the <a href="http://xunitpatterns.com/Fake%20Object.html">Fake Object</a> or <a href="http://xunitpatterns.com/Test%20Spy.html">Test Spy</a> types. Although it would be possible to extend Mocha to allow the implementation of fakes and spies, we have chosen to keep it focused on mocks and stubs.</p>
74
+
71
75
  <h3>Installation</h3>
72
76
 
73
77
  <h4>Gem</h4>
@@ -147,15 +151,6 @@
147
151
 
148
152
  <p>Note: There is no need to use a require statement to setup Mocha; RSpec does this itself.</p>
149
153
 
150
- <h4>Rails Plugin</h4>
151
-
152
- <p>Install the Rails plugin...</p>
153
-
154
- <pre class="code ruby"><code class="ruby">$ rails plugin install git://github.com/freerange/mocha.git
155
- </code></pre>
156
-
157
- <p>Note: As of version 0.9.8, the Mocha plugin is not automatically setup at plugin load time. Instead it must be manually setup e.g. at the bottom of your <code>test_helper.rb</code>.</p>
158
-
159
154
  <h5>MiniTest</h5>
160
155
 
161
156
  <pre class="code ruby"><code class="ruby"><span class='comment'># At bottom of test_helper.rb (or at least after `require &#39;rails/test_help&#39;`)
@@ -171,7 +166,6 @@
171
166
  <li>0.13.x versions cause a harmless, but annoying, deprecation warning when used with Rails 3.2.0-3.2.12, 3.1.0-3.1.10 &amp; 3.0.0-3.0.19.</li>
172
167
  <li>0.11.x versions don&#39;t work with Rails 3.2.13 (<code>TypeError: superclass mismatch for class ExpectationError</code>). See #115.</li>
173
168
  <li>Versions 0.10.2, 0.10.3 &amp; 0.11.0 of the Mocha gem were broken. Please do not use these versions.</li>
174
- <li>Versions 0.9.6 &amp; 0.9.7 of the Mocha Rails plugin were broken. Please do not use these versions.</li>
175
169
  </ul>
176
170
 
177
171
  <h3>Usage</h3>
@@ -341,6 +335,15 @@
341
335
 
342
336
  <p>See the <a href="https://mocha.jamesmead.org/Mocha/Configuration.html">documentation</a> for <code>Mocha::Configuration</code> for further details.</p>
343
337
 
338
+ <h5>MOCHA_OPTIONS</h5>
339
+
340
+ <p><code>MOCHA_OPTIONS</code> is an environment variable whose value can be set to a comma-separated list, so that we can specify multiple options e.g. <code>MOCHA_OPTIONS=debug,use_test_unit_gem</code>.
341
+ Only the following values are currently recognized and have an effect:</p>
342
+
343
+ <ul>
344
+ <li><code>debug</code>: Enables a debug mode which will output backtraces for each deprecation warning. This is useful for finding where in the test suite the deprecated calls are.</li>
345
+ </ul>
346
+
344
347
  <h3>Useful Links</h3>
345
348
 
346
349
  <ul>
@@ -367,7 +370,7 @@
367
370
  <li>Commit &amp; push to GitHub</li>
368
371
  <li><p>Check Travis CI build is passing - <a href="https://travis-ci.org/freerange/mocha">https://travis-ci.org/freerange/mocha</a></p></li>
369
372
  <li><p>Sign in to Google Analytics - <a href="https://analytics.google.com/analytics/web/">https://analytics.google.com/analytics/web/</a></p></li>
370
- <li><p>Find the web property ID for Go Free Range Ltd &gt; Mocha Documentation (UA-625523-7)</p></li>
373
+ <li><p>Find the web property ID for floehopper (625523) &gt; Mocha Documentation (UA-625523-7)</p></li>
371
374
  <li><p>Generate documentation:</p></li>
372
375
  </ul>
373
376
 
@@ -416,9 +419,9 @@ Pushed mocha 1.2.0 to rubygems.org.
416
419
  </div>
417
420
 
418
421
  <div id="footer">
419
- Generated on Mon Jun 17 18:38:42 2019 by
422
+ Generated on Sun Nov 24 15:26:48 2019 by
420
423
  <a href="http://yardoc.org" title="Yay! A Ruby Documentation Tool" target="_parent">yard</a>
421
- 0.9.19 (ruby-2.5.3).
424
+ 0.9.20 (ruby-2.6.5).
422
425
  </div>
423
426
 
424
427
  </div>
@@ -68,7 +68,7 @@
68
68
  </li>
69
69
 
70
70
 
71
- <li class="even ">
71
+ <li class="even deprecated">
72
72
  <div class="item">
73
73
  <span class='object_link'><a href="Mocha/Configuration.html#allow-class_method" title="Mocha::Configuration.allow (method)">allow</a></span>
74
74
  <small>Mocha::Configuration</small>
@@ -148,6 +148,22 @@
148
148
  </li>
149
149
 
150
150
 
151
+ <li class="even ">
152
+ <div class="item">
153
+ <span class='object_link'><a href="Mocha.html#configure-class_method" title="Mocha.configure (method)">configure</a></span>
154
+ <small>Mocha</small>
155
+ </div>
156
+ </li>
157
+
158
+
159
+ <li class="odd ">
160
+ <div class="item">
161
+ <span class='object_link'><a href="Mocha/Configuration.html#display_matching_invocations_on_failure=-instance_method" title="Mocha::Configuration#display_matching_invocations_on_failure= (method)">#display_matching_invocations_on_failure=</a></span>
162
+ <small>Mocha::Configuration</small>
163
+ </div>
164
+ </li>
165
+
166
+
151
167
  <li class="even ">
152
168
  <div class="item">
153
169
  <span class='object_link'><a href="Mocha/ParameterMatchers.html#equals-instance_method" title="Mocha::ParameterMatchers#equals (method)">#equals</a></span>
@@ -174,16 +190,16 @@
174
190
 
175
191
  <li class="odd ">
176
192
  <div class="item">
177
- <span class='object_link'><a href="Mocha/ObjectMethods.html#expects-instance_method" title="Mocha::ObjectMethods#expects (method)">#expects</a></span>
178
- <small>Mocha::ObjectMethods</small>
193
+ <span class='object_link'><a href="Mocha/Mock.html#expects-instance_method" title="Mocha::Mock#expects (method)">#expects</a></span>
194
+ <small>Mocha::Mock</small>
179
195
  </div>
180
196
  </li>
181
197
 
182
198
 
183
199
  <li class="even ">
184
200
  <div class="item">
185
- <span class='object_link'><a href="Mocha/Mock.html#expects-instance_method" title="Mocha::Mock#expects (method)">#expects</a></span>
186
- <small>Mocha::Mock</small>
201
+ <span class='object_link'><a href="Mocha/ObjectMethods.html#expects-instance_method" title="Mocha::ObjectMethods#expects (method)">#expects</a></span>
202
+ <small>Mocha::ObjectMethods</small>
187
203
  </div>
188
204
  </li>
189
205
 
@@ -204,15 +220,7 @@
204
220
  </li>
205
221
 
206
222
 
207
- <li class="odd deprecated">
208
- <div class="item">
209
- <span class='object_link'><a href="Mocha/ParameterMatchers.html#has_equivalent_query_string-instance_method" title="Mocha::ParameterMatchers#has_equivalent_query_string (method)">#has_equivalent_query_string</a></span>
210
- <small>Mocha::ParameterMatchers</small>
211
- </div>
212
- </li>
213
-
214
-
215
- <li class="even ">
223
+ <li class="odd ">
216
224
  <div class="item">
217
225
  <span class='object_link'><a href="Mocha/ParameterMatchers.html#has_key-instance_method" title="Mocha::ParameterMatchers#has_key (method)">#has_key</a></span>
218
226
  <small>Mocha::ParameterMatchers</small>
@@ -220,7 +228,7 @@
220
228
  </li>
221
229
 
222
230
 
223
- <li class="odd ">
231
+ <li class="even ">
224
232
  <div class="item">
225
233
  <span class='object_link'><a href="Mocha/ParameterMatchers.html#has_value-instance_method" title="Mocha::ParameterMatchers#has_value (method)">#has_value</a></span>
226
234
  <small>Mocha::ParameterMatchers</small>
@@ -228,7 +236,7 @@
228
236
  </li>
229
237
 
230
238
 
231
- <li class="even ">
239
+ <li class="odd ">
232
240
  <div class="item">
233
241
  <span class='object_link'><a href="Mocha/Expectation.html#in_sequence-instance_method" title="Mocha::Expectation#in_sequence (method)">#in_sequence</a></span>
234
242
  <small>Mocha::Expectation</small>
@@ -236,7 +244,7 @@
236
244
  </li>
237
245
 
238
246
 
239
- <li class="odd ">
247
+ <li class="even ">
240
248
  <div class="item">
241
249
  <span class='object_link'><a href="Mocha/ParameterMatchers.html#includes-instance_method" title="Mocha::ParameterMatchers#includes (method)">#includes</a></span>
242
250
  <small>Mocha::ParameterMatchers</small>
@@ -244,7 +252,7 @@
244
252
  </li>
245
253
 
246
254
 
247
- <li class="even ">
255
+ <li class="odd ">
248
256
  <div class="item">
249
257
  <span class='object_link'><a href="Mocha/ParameterMatchers.html#instance_of-instance_method" title="Mocha::ParameterMatchers#instance_of (method)">#instance_of</a></span>
250
258
  <small>Mocha::ParameterMatchers</small>
@@ -252,7 +260,7 @@
252
260
  </li>
253
261
 
254
262
 
255
- <li class="odd ">
263
+ <li class="even ">
256
264
  <div class="item">
257
265
  <span class='object_link'><a href="Mocha/StateMachine.html#is-instance_method" title="Mocha::StateMachine#is (method)">#is</a></span>
258
266
  <small>Mocha::StateMachine</small>
@@ -260,7 +268,7 @@
260
268
  </li>
261
269
 
262
270
 
263
- <li class="even ">
271
+ <li class="odd ">
264
272
  <div class="item">
265
273
  <span class='object_link'><a href="Mocha/ParameterMatchers.html#is_a-instance_method" title="Mocha::ParameterMatchers#is_a (method)">#is_a</a></span>
266
274
  <small>Mocha::ParameterMatchers</small>
@@ -268,7 +276,7 @@
268
276
  </li>
269
277
 
270
278
 
271
- <li class="odd ">
279
+ <li class="even ">
272
280
  <div class="item">
273
281
  <span class='object_link'><a href="Mocha/StateMachine.html#is_not-instance_method" title="Mocha::StateMachine#is_not (method)">#is_not</a></span>
274
282
  <small>Mocha::StateMachine</small>
@@ -276,7 +284,7 @@
276
284
  </li>
277
285
 
278
286
 
279
- <li class="even ">
287
+ <li class="odd ">
280
288
  <div class="item">
281
289
  <span class='object_link'><a href="Mocha/ParameterMatchers.html#kind_of-instance_method" title="Mocha::ParameterMatchers#kind_of (method)">#kind_of</a></span>
282
290
  <small>Mocha::ParameterMatchers</small>
@@ -284,6 +292,14 @@
284
292
  </li>
285
293
 
286
294
 
295
+ <li class="even ">
296
+ <div class="item">
297
+ <span class='object_link'><a href="Mocha/ClassMethods.html#method_visibility-instance_method" title="Mocha::ClassMethods#method_visibility (method)">#method_visibility</a></span>
298
+ <small>Mocha::ClassMethods</small>
299
+ </div>
300
+ </li>
301
+
302
+
287
303
  <li class="odd ">
288
304
  <div class="item">
289
305
  <span class='object_link'><a href="Mocha/Hooks.html#mocha_setup-instance_method" title="Mocha::Hooks#mocha_setup (method)">#mocha_setup</a></span>
@@ -349,6 +365,14 @@
349
365
 
350
366
 
351
367
  <li class="odd ">
368
+ <div class="item">
369
+ <span class='object_link'><a href="Mocha/Configuration.html#override-class_method" title="Mocha::Configuration.override (method)">override</a></span>
370
+ <small>Mocha::Configuration</small>
371
+ </div>
372
+ </li>
373
+
374
+
375
+ <li class="even deprecated">
352
376
  <div class="item">
353
377
  <span class='object_link'><a href="Mocha/Configuration.html#prevent-class_method" title="Mocha::Configuration.prevent (method)">prevent</a></span>
354
378
  <small>Mocha::Configuration</small>
@@ -356,7 +380,7 @@
356
380
  </li>
357
381
 
358
382
 
359
- <li class="even ">
383
+ <li class="odd ">
360
384
  <div class="item">
361
385
  <span class='object_link'><a href="Mocha/Expectation.html#raises-instance_method" title="Mocha::Expectation#raises (method)">#raises</a></span>
362
386
  <small>Mocha::Expectation</small>
@@ -364,7 +388,7 @@
364
388
  </li>
365
389
 
366
390
 
367
- <li class="odd ">
391
+ <li class="even ">
368
392
  <div class="item">
369
393
  <span class='object_link'><a href="Mocha/ParameterMatchers.html#regexp_matches-instance_method" title="Mocha::ParameterMatchers#regexp_matches (method)">#regexp_matches</a></span>
370
394
  <small>Mocha::ParameterMatchers</small>
@@ -372,7 +396,7 @@
372
396
  </li>
373
397
 
374
398
 
375
- <li class="even ">
399
+ <li class="odd ">
376
400
  <div class="item">
377
401
  <span class='object_link'><a href="Mocha/Mock.html#respond_to%3F-instance_method" title="Mocha::Mock#respond_to? (method)">#respond_to?</a></span>
378
402
  <small>Mocha::Mock</small>
@@ -380,7 +404,7 @@
380
404
  </li>
381
405
 
382
406
 
383
- <li class="odd ">
407
+ <li class="even ">
384
408
  <div class="item">
385
409
  <span class='object_link'><a href="Mocha/Mock.html#responds_like-instance_method" title="Mocha::Mock#responds_like (method)">#responds_like</a></span>
386
410
  <small>Mocha::Mock</small>
@@ -388,7 +412,7 @@
388
412
  </li>
389
413
 
390
414
 
391
- <li class="even ">
415
+ <li class="odd ">
392
416
  <div class="item">
393
417
  <span class='object_link'><a href="Mocha/Mock.html#responds_like_instance_of-instance_method" title="Mocha::Mock#responds_like_instance_of (method)">#responds_like_instance_of</a></span>
394
418
  <small>Mocha::Mock</small>
@@ -396,7 +420,7 @@
396
420
  </li>
397
421
 
398
422
 
399
- <li class="odd ">
423
+ <li class="even ">
400
424
  <div class="item">
401
425
  <span class='object_link'><a href="Mocha/ParameterMatchers.html#responds_with-instance_method" title="Mocha::ParameterMatchers#responds_with (method)">#responds_with</a></span>
402
426
  <small>Mocha::ParameterMatchers</small>
@@ -404,7 +428,7 @@
404
428
  </li>
405
429
 
406
430
 
407
- <li class="even ">
431
+ <li class="odd ">
408
432
  <div class="item">
409
433
  <span class='object_link'><a href="Mocha/Expectation.html#returns-instance_method" title="Mocha::Expectation#returns (method)">#returns</a></span>
410
434
  <small>Mocha::Expectation</small>
@@ -412,7 +436,7 @@
412
436
  </li>
413
437
 
414
438
 
415
- <li class="odd ">
439
+ <li class="even ">
416
440
  <div class="item">
417
441
  <span class='object_link'><a href="Mocha/API.html#sequence-instance_method" title="Mocha::API#sequence (method)">#sequence</a></span>
418
442
  <small>Mocha::API</small>
@@ -420,7 +444,7 @@
420
444
  </li>
421
445
 
422
446
 
423
- <li class="even ">
447
+ <li class="odd ">
424
448
  <div class="item">
425
449
  <span class='object_link'><a href="Mocha/StateMachine.html#starts_as-instance_method" title="Mocha::StateMachine#starts_as (method)">#starts_as</a></span>
426
450
  <small>Mocha::StateMachine</small>
@@ -428,7 +452,7 @@
428
452
  </li>
429
453
 
430
454
 
431
- <li class="odd ">
455
+ <li class="even ">
432
456
  <div class="item">
433
457
  <span class='object_link'><a href="Mocha/API.html#states-instance_method" title="Mocha::API#states (method)">#states</a></span>
434
458
  <small>Mocha::API</small>
@@ -436,7 +460,7 @@
436
460
  </li>
437
461
 
438
462
 
439
- <li class="even ">
463
+ <li class="odd ">
440
464
  <div class="item">
441
465
  <span class='object_link'><a href="Mocha/API.html#stub-instance_method" title="Mocha::API#stub (method)">#stub</a></span>
442
466
  <small>Mocha::API</small>
@@ -444,7 +468,7 @@
444
468
  </li>
445
469
 
446
470
 
447
- <li class="odd ">
471
+ <li class="even ">
448
472
  <div class="item">
449
473
  <span class='object_link'><a href="Mocha/API.html#stub_everything-instance_method" title="Mocha::API#stub_everything (method)">#stub_everything</a></span>
450
474
  <small>Mocha::API</small>
@@ -452,6 +476,46 @@
452
476
  </li>
453
477
 
454
478
 
479
+ <li class="odd ">
480
+ <div class="item">
481
+ <span class='object_link'><a href="Mocha/Configuration.html#stubbing_method_on_nil=-instance_method" title="Mocha::Configuration#stubbing_method_on_nil= (method)">#stubbing_method_on_nil=</a></span>
482
+ <small>Mocha::Configuration</small>
483
+ </div>
484
+ </li>
485
+
486
+
487
+ <li class="even ">
488
+ <div class="item">
489
+ <span class='object_link'><a href="Mocha/Configuration.html#stubbing_method_on_non_mock_object=-instance_method" title="Mocha::Configuration#stubbing_method_on_non_mock_object= (method)">#stubbing_method_on_non_mock_object=</a></span>
490
+ <small>Mocha::Configuration</small>
491
+ </div>
492
+ </li>
493
+
494
+
495
+ <li class="odd ">
496
+ <div class="item">
497
+ <span class='object_link'><a href="Mocha/Configuration.html#stubbing_method_unnecessarily=-instance_method" title="Mocha::Configuration#stubbing_method_unnecessarily= (method)">#stubbing_method_unnecessarily=</a></span>
498
+ <small>Mocha::Configuration</small>
499
+ </div>
500
+ </li>
501
+
502
+
503
+ <li class="even ">
504
+ <div class="item">
505
+ <span class='object_link'><a href="Mocha/Configuration.html#stubbing_non_existent_method=-instance_method" title="Mocha::Configuration#stubbing_non_existent_method= (method)">#stubbing_non_existent_method=</a></span>
506
+ <small>Mocha::Configuration</small>
507
+ </div>
508
+ </li>
509
+
510
+
511
+ <li class="odd ">
512
+ <div class="item">
513
+ <span class='object_link'><a href="Mocha/Configuration.html#stubbing_non_public_method=-instance_method" title="Mocha::Configuration#stubbing_non_public_method= (method)">#stubbing_non_public_method=</a></span>
514
+ <small>Mocha::Configuration</small>
515
+ </div>
516
+ </li>
517
+
518
+
455
519
  <li class="even ">
456
520
  <div class="item">
457
521
  <span class='object_link'><a href="Mocha/ObjectMethods.html#stubs-instance_method" title="Mocha::ObjectMethods#stubs (method)">#stubs</a></span>
@@ -502,21 +566,21 @@
502
566
 
503
567
  <li class="even ">
504
568
  <div class="item">
505
- <span class='object_link'><a href="Mocha/Mock.html#unstub-instance_method" title="Mocha::Mock#unstub (method)">#unstub</a></span>
506
- <small>Mocha::Mock</small>
569
+ <span class='object_link'><a href="Mocha/ObjectMethods.html#unstub-instance_method" title="Mocha::ObjectMethods#unstub (method)">#unstub</a></span>
570
+ <small>Mocha::ObjectMethods</small>
507
571
  </div>
508
572
  </li>
509
573
 
510
574
 
511
575
  <li class="odd ">
512
576
  <div class="item">
513
- <span class='object_link'><a href="Mocha/ObjectMethods.html#unstub-instance_method" title="Mocha::ObjectMethods#unstub (method)">#unstub</a></span>
514
- <small>Mocha::ObjectMethods</small>
577
+ <span class='object_link'><a href="Mocha/Mock.html#unstub-instance_method" title="Mocha::Mock#unstub (method)">#unstub</a></span>
578
+ <small>Mocha::Mock</small>
515
579
  </div>
516
580
  </li>
517
581
 
518
582
 
519
- <li class="even ">
583
+ <li class="even deprecated">
520
584
  <div class="item">
521
585
  <span class='object_link'><a href="Mocha/Configuration.html#warn_when-class_method" title="Mocha::Configuration.warn_when (method)">warn_when</a></span>
522
586
  <small>Mocha::Configuration</small>