mocha 0.12.7 → 0.13.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (129) hide show
  1. data/.yardopts +22 -0
  2. data/COPYING.md +3 -0
  3. data/README.md +230 -0
  4. data/{RELEASE.rdoc → RELEASE.md} +61 -47
  5. data/Rakefile +45 -37
  6. data/build-matrix.rb +16 -4
  7. data/lib/mocha/api.rb +13 -16
  8. data/lib/mocha/class_method.rb +7 -3
  9. data/lib/mocha/class_methods.rb +63 -0
  10. data/lib/mocha/debug.rb +11 -0
  11. data/lib/mocha/deprecation.rb +1 -1
  12. data/lib/mocha/exception_raiser.rb +1 -1
  13. data/lib/mocha/expectation_error.rb +5 -0
  14. data/lib/mocha/expectation_error_factory.rb +19 -0
  15. data/lib/mocha/hooks.rb +43 -0
  16. data/lib/mocha/integration/assertion_counter.rb +13 -0
  17. data/lib/mocha/integration/mini_test/adapter.rb +54 -0
  18. data/lib/mocha/integration/mini_test/exception_translation.rb +0 -6
  19. data/lib/mocha/integration/mini_test/nothing.rb +19 -0
  20. data/lib/mocha/integration/mini_test/version_13.rb +32 -25
  21. data/lib/mocha/integration/mini_test/version_140.rb +32 -26
  22. data/lib/mocha/integration/mini_test/version_141.rb +40 -34
  23. data/lib/mocha/integration/mini_test/version_142_to_172.rb +40 -34
  24. data/lib/mocha/integration/mini_test/version_200.rb +41 -35
  25. data/lib/mocha/integration/mini_test/version_201_to_222.rb +41 -35
  26. data/lib/mocha/integration/mini_test/version_2110_to_2111.rb +49 -43
  27. data/lib/mocha/integration/mini_test/version_2112_to_320.rb +53 -47
  28. data/lib/mocha/integration/mini_test/version_230_to_2101.rb +43 -37
  29. data/lib/mocha/integration/mini_test.rb +42 -51
  30. data/lib/mocha/integration/monkey_patcher.rb +18 -0
  31. data/lib/mocha/integration/test_unit/adapter.rb +51 -0
  32. data/lib/mocha/integration/test_unit/gem_version_200.rb +36 -29
  33. data/lib/mocha/integration/test_unit/gem_version_201_to_202.rb +36 -29
  34. data/lib/mocha/integration/test_unit/gem_version_203_to_220.rb +36 -29
  35. data/lib/mocha/integration/test_unit/gem_version_230_to_250.rb +65 -0
  36. data/lib/mocha/integration/test_unit/nothing.rb +19 -0
  37. data/lib/mocha/integration/test_unit/ruby_version_185_and_below.rb +36 -29
  38. data/lib/mocha/integration/test_unit/ruby_version_186_and_above.rb +37 -30
  39. data/lib/mocha/integration/test_unit.rb +38 -45
  40. data/lib/mocha/integration.rb +6 -38
  41. data/lib/mocha/method_matcher.rb +1 -1
  42. data/lib/mocha/module_methods.rb +14 -0
  43. data/lib/mocha/{object.rb → object_methods.rb} +0 -83
  44. data/lib/mocha/setup.rb +10 -0
  45. data/lib/mocha/standalone.rb +3 -0
  46. data/lib/mocha/version.rb +1 -1
  47. data/lib/mocha.rb +6 -2
  48. data/lib/mocha_standalone.rb +3 -1
  49. data/mocha.gemspec +16 -9
  50. data/test/acceptance/bug_18914_test.rb +1 -1
  51. data/test/acceptance/bug_21465_test.rb +1 -1
  52. data/test/acceptance/bug_21563_test.rb +1 -1
  53. data/test/acceptance/exception_rescue_test.rb +1 -1
  54. data/test/acceptance/expectations_on_multiple_methods_test.rb +1 -1
  55. data/test/acceptance/expected_invocation_count_test.rb +1 -1
  56. data/test/acceptance/failure_messages_test.rb +1 -1
  57. data/test/acceptance/issue_65_test.rb +1 -1
  58. data/test/acceptance/issue_70_test.rb +1 -1
  59. data/test/acceptance/mocha_example_test.rb +1 -1
  60. data/test/acceptance/mocha_test_result_test.rb +1 -1
  61. data/test/acceptance/mock_test.rb +1 -1
  62. data/test/acceptance/mock_with_initializer_block_test.rb +1 -1
  63. data/test/acceptance/mocked_methods_dispatch_test.rb +1 -1
  64. data/test/acceptance/multiple_expectations_failure_message_test.rb +1 -1
  65. data/test/acceptance/optional_parameters_test.rb +1 -1
  66. data/test/acceptance/parameter_matcher_test.rb +1 -1
  67. data/test/acceptance/partial_mocks_test.rb +1 -1
  68. data/test/acceptance/raise_exception_test.rb +1 -1
  69. data/test/acceptance/return_value_test.rb +1 -1
  70. data/test/acceptance/sequence_test.rb +1 -1
  71. data/test/acceptance/states_test.rb +1 -1
  72. data/test/acceptance/stub_any_instance_method_test.rb +1 -1
  73. data/test/acceptance/stub_class_method_defined_on_active_record_association_proxy_test.rb +1 -1
  74. data/test/acceptance/stub_class_method_defined_on_class_test.rb +1 -1
  75. data/test/acceptance/stub_class_method_defined_on_module_test.rb +1 -1
  76. data/test/acceptance/stub_class_method_defined_on_superclass_test.rb +1 -1
  77. data/test/acceptance/stub_everything_test.rb +1 -1
  78. data/test/acceptance/stub_instance_method_defined_on_active_record_association_proxy_test.rb +1 -1
  79. data/test/acceptance/stub_instance_method_defined_on_class_and_aliased_test.rb +1 -1
  80. data/test/acceptance/stub_instance_method_defined_on_class_test.rb +1 -1
  81. data/test/acceptance/stub_instance_method_defined_on_kernel_module_test.rb +1 -1
  82. data/test/acceptance/stub_instance_method_defined_on_module_test.rb +1 -1
  83. data/test/acceptance/stub_instance_method_defined_on_object_class_test.rb +1 -1
  84. data/test/acceptance/stub_instance_method_defined_on_singleton_class_test.rb +1 -1
  85. data/test/acceptance/stub_instance_method_defined_on_superclass_test.rb +1 -1
  86. data/test/acceptance/stub_module_method_test.rb +1 -1
  87. data/test/acceptance/stub_test.rb +1 -1
  88. data/test/acceptance/stubba_example_test.rb +1 -1
  89. data/test/acceptance/stubba_test_result_test.rb +1 -1
  90. data/test/acceptance/stubbing_error_backtrace_test.rb +1 -1
  91. data/test/acceptance/stubbing_frozen_object_test.rb +1 -1
  92. data/test/acceptance/stubbing_method_accepting_block_parameter_test.rb +1 -1
  93. data/test/acceptance/stubbing_method_unnecessarily_test.rb +1 -1
  94. data/test/acceptance/stubbing_nil_test.rb +1 -1
  95. data/test/acceptance/stubbing_non_existent_any_instance_method_test.rb +1 -1
  96. data/test/acceptance/stubbing_non_existent_class_method_test.rb +1 -1
  97. data/test/acceptance/stubbing_non_existent_instance_method_test.rb +1 -1
  98. data/test/acceptance/stubbing_non_public_any_instance_method_test.rb +1 -1
  99. data/test/acceptance/stubbing_non_public_class_method_test.rb +1 -1
  100. data/test/acceptance/stubbing_non_public_instance_method_test.rb +1 -1
  101. data/test/acceptance/stubbing_on_non_mock_object_test.rb +1 -1
  102. data/test/acceptance/stubbing_same_class_method_on_parent_and_child_classes_test.rb +3 -3
  103. data/test/acceptance/throw_test.rb +1 -1
  104. data/test/acceptance/unstubbing_test.rb +1 -1
  105. data/test/integration/mini_test_test.rb +9 -0
  106. data/test/integration/shared_tests.rb +174 -0
  107. data/test/integration/test_unit_test.rb +9 -0
  108. data/test/mini_test_result.rb +0 -1
  109. data/test/test_runner.rb +14 -14
  110. data/test/unit/class_methods_test.rb +40 -0
  111. data/test/unit/method_matcher_test.rb +5 -0
  112. data/test/unit/mock_test.rb +6 -0
  113. data/test/unit/module_methods_test.rb +19 -0
  114. data/test/unit/object_methods_test.rb +45 -0
  115. metadata +43 -42
  116. data/COPYING.rdoc +0 -3
  117. data/README.rdoc +0 -56
  118. data/examples/misc.rb +0 -43
  119. data/examples/mocha.rb +0 -25
  120. data/examples/stubba.rb +0 -64
  121. data/lib/mocha/integration/mini_test/assertion_counter.rb +0 -23
  122. data/lib/mocha/integration/mini_test/version_330_to_410.rb +0 -65
  123. data/lib/mocha/integration/test_unit/assertion_counter.rb +0 -23
  124. data/lib/mocha/integration/test_unit/gem_version_230_to_252.rb +0 -58
  125. data/lib/mocha/options.rb +0 -1
  126. data/test/acceptance/api_test.rb +0 -139
  127. data/test/acceptance/minitest_test.rb +0 -162
  128. data/test/unit/object_test.rb +0 -92
  129. /data/{MIT-LICENSE.rdoc → MIT-LICENSE.md} +0 -0
@@ -1,51 +1,58 @@
1
- require 'test/unit/testcase'
2
- require 'mocha/integration/test_unit/assertion_counter'
1
+ require 'mocha/integration/assertion_counter'
2
+ require 'mocha/integration/monkey_patcher'
3
3
  require 'mocha/expectation_error'
4
4
 
5
5
  module Mocha
6
-
7
6
  module Integration
8
-
9
7
  module TestUnit
10
-
11
8
  module RubyVersion185AndBelow
9
+ def self.applicable_to?(test_unit_version, ruby_version)
10
+ Gem::Requirement.new('<= 1.2.3').satisfied_by?(test_unit_version) && Gem::Requirement.new('<= 1.8.5').satisfied_by?(ruby_version)
11
+ end
12
+
13
+ def self.description
14
+ "monkey patch for standard library in Ruby <= v1.8.5"
15
+ end
16
+
12
17
  def self.included(mod)
13
- $stderr.puts "Monkey patching Test::Unit for Ruby <= v1.8.5" if $mocha_options['debug']
18
+ MonkeyPatcher.apply(mod, RunMethodPatch)
14
19
  end
15
- def run(result)
16
- assertion_counter = AssertionCounter.new(result)
17
- yield(Test::Unit::TestCase::STARTED, name)
18
- @_result = result
19
- begin
20
+
21
+ module RunMethodPatch
22
+ def run(result)
23
+ assertion_counter = AssertionCounter.new(self)
24
+ yield(Test::Unit::TestCase::STARTED, name)
25
+ @_result = result
20
26
  begin
21
- setup
22
- __send__(@method_name)
23
- mocha_verify(assertion_counter)
24
- rescue Mocha::ExpectationError => e
25
- add_failure(e.message, e.backtrace)
26
- rescue Test::Unit::AssertionFailedError => e
27
- add_failure(e.message, e.backtrace)
28
- rescue StandardError, ScriptError
29
- add_error($!)
30
- ensure
31
27
  begin
32
- teardown
28
+ setup
29
+ __send__(@method_name)
30
+ mocha_verify(assertion_counter)
31
+ rescue Mocha::ExpectationError => e
32
+ add_failure(e.message, e.backtrace)
33
33
  rescue Test::Unit::AssertionFailedError => e
34
34
  add_failure(e.message, e.backtrace)
35
35
  rescue StandardError, ScriptError
36
36
  add_error($!)
37
+ ensure
38
+ begin
39
+ teardown
40
+ rescue Mocha::ExpectationError => e
41
+ add_failure(e.message, e.backtrace)
42
+ rescue Test::Unit::AssertionFailedError => e
43
+ add_failure(e.message, e.backtrace)
44
+ rescue StandardError, ScriptError
45
+ add_error($!)
46
+ end
37
47
  end
48
+ ensure
49
+ mocha_teardown
38
50
  end
39
- ensure
40
- mocha_teardown
51
+ result.add_run
52
+ yield(Test::Unit::TestCase::FINISHED, name)
41
53
  end
42
- result.add_run
43
- yield(Test::Unit::TestCase::FINISHED, name)
44
54
  end
45
55
  end
46
-
47
56
  end
48
-
49
57
  end
50
-
51
58
  end
@@ -1,53 +1,60 @@
1
- require 'test/unit/testcase'
2
- require 'mocha/integration/test_unit/assertion_counter'
1
+ require 'mocha/integration/assertion_counter'
2
+ require 'mocha/integration/monkey_patcher'
3
3
  require 'mocha/expectation_error'
4
4
 
5
5
  module Mocha
6
-
7
6
  module Integration
8
-
9
7
  module TestUnit
10
-
11
8
  module RubyVersion186AndAbove
9
+ def self.applicable_to?(test_unit_version, ruby_version)
10
+ Gem::Requirement.new('<= 1.2.3').satisfied_by?(test_unit_version) && Gem::Requirement.new('>= 1.8.6').satisfied_by?(ruby_version)
11
+ end
12
+
13
+ def self.description
14
+ "monkey patch for standard library Test::Unit in Ruby >= v1.8.6"
15
+ end
16
+
12
17
  def self.included(mod)
13
- $stderr.puts "Monkey patching Test::Unit for Ruby >= v1.8.6" if $mocha_options['debug']
18
+ MonkeyPatcher.apply(mod, RunMethodPatch)
14
19
  end
15
- def run(result)
16
- assertion_counter = AssertionCounter.new(result)
17
- yield(Test::Unit::TestCase::STARTED, name)
18
- @_result = result
19
- begin
20
+
21
+ module RunMethodPatch
22
+ def run(result)
23
+ assertion_counter = AssertionCounter.new(self)
24
+ yield(Test::Unit::TestCase::STARTED, name)
25
+ @_result = result
20
26
  begin
21
- setup
22
- __send__(@method_name)
23
- mocha_verify(assertion_counter)
24
- rescue Mocha::ExpectationError => e
25
- add_failure(e.message, e.backtrace)
26
- rescue Test::Unit::AssertionFailedError => e
27
- add_failure(e.message, e.backtrace)
28
- rescue Exception
29
- raise if Test::Unit::TestCase::PASSTHROUGH_EXCEPTIONS.include? $!.class
30
- add_error($!)
31
- ensure
32
27
  begin
33
- teardown
28
+ setup
29
+ __send__(@method_name)
30
+ mocha_verify(assertion_counter)
31
+ rescue Mocha::ExpectationError => e
32
+ add_failure(e.message, e.backtrace)
34
33
  rescue Test::Unit::AssertionFailedError => e
35
34
  add_failure(e.message, e.backtrace)
36
35
  rescue Exception
37
36
  raise if Test::Unit::TestCase::PASSTHROUGH_EXCEPTIONS.include? $!.class
38
37
  add_error($!)
38
+ ensure
39
+ begin
40
+ teardown
41
+ rescue Mocha::ExpectationError => e
42
+ add_failure(e.message, e.backtrace)
43
+ rescue Test::Unit::AssertionFailedError => e
44
+ add_failure(e.message, e.backtrace)
45
+ rescue Exception
46
+ raise if Test::Unit::TestCase::PASSTHROUGH_EXCEPTIONS.include? $!.class
47
+ add_error($!)
48
+ end
39
49
  end
50
+ ensure
51
+ mocha_teardown
40
52
  end
41
- ensure
42
- mocha_teardown
53
+ result.add_run
54
+ yield(Test::Unit::TestCase::FINISHED, name)
43
55
  end
44
- result.add_run
45
- yield(Test::Unit::TestCase::FINISHED, name)
46
56
  end
47
57
  end
48
-
49
58
  end
50
-
51
59
  end
52
-
53
60
  end
@@ -1,56 +1,49 @@
1
- require 'mocha/api'
2
- require 'mocha/options'
3
-
4
- if !Test::Unit::TestCase.ancestors.include?(Mocha::API)
5
-
6
- require 'mocha/integration/test_unit/gem_version_200'
7
- require 'mocha/integration/test_unit/gem_version_201_to_202'
8
- require 'mocha/integration/test_unit/gem_version_203_to_220'
9
- require 'mocha/integration/test_unit/gem_version_230_to_252'
10
- require 'mocha/integration/test_unit/ruby_version_185_and_below'
11
- require 'mocha/integration/test_unit/ruby_version_186_and_above'
12
-
13
- module Test
14
- module Unit
15
- class TestCase
16
-
17
- include Mocha::API
18
-
19
- alias_method :run_before_mocha, :run
20
- remove_method :run
1
+ require 'mocha/debug'
2
+
3
+ require 'mocha/integration/test_unit/nothing'
4
+ require 'mocha/integration/test_unit/ruby_version_185_and_below'
5
+ require 'mocha/integration/test_unit/ruby_version_186_and_above'
6
+ require 'mocha/integration/test_unit/gem_version_200'
7
+ require 'mocha/integration/test_unit/gem_version_201_to_202'
8
+ require 'mocha/integration/test_unit/gem_version_203_to_220'
9
+ require 'mocha/integration/test_unit/gem_version_230_to_250'
10
+ require 'mocha/integration/test_unit/adapter'
11
+
12
+ module Mocha
13
+ module Integration
14
+ module TestUnit
15
+ def self.activate
16
+ return false unless defined?(::Test::Unit::TestCase) && !(defined?(::MiniTest::Unit::TestCase) && (::Test::Unit::TestCase < ::MiniTest::Unit::TestCase))
21
17
 
22
18
  test_unit_version = begin
23
19
  load 'test/unit/version.rb'
24
- Gem::Version.new(Test::Unit::VERSION)
20
+ Gem::Version.new(::Test::Unit::VERSION)
25
21
  rescue LoadError
26
- Gem::Version.new('1.x')
22
+ Gem::Version.new('1.0.0')
27
23
  end
28
24
 
29
- if $mocha_options['debug']
30
- $stderr.puts "Detected Ruby version: #{RUBY_VERSION}"
31
- $stderr.puts "Detected Test::Unit version: #{test_unit_version}"
25
+ ruby_version = Gem::Version.new(RUBY_VERSION.dup)
26
+
27
+ Debug.puts "Detected Ruby version: #{ruby_version}"
28
+ Debug.puts "Detected Test::Unit version: #{test_unit_version}"
29
+
30
+ integration_module = [
31
+ TestUnit::Adapter,
32
+ TestUnit::GemVersion230To250,
33
+ TestUnit::GemVersion203To220,
34
+ TestUnit::GemVersion201To202,
35
+ TestUnit::GemVersion200,
36
+ TestUnit::RubyVersion186AndAbove,
37
+ TestUnit::RubyVersion185AndBelow,
38
+ TestUnit::Nothing
39
+ ].detect { |m| m.applicable_to?(test_unit_version, ruby_version) }
40
+
41
+ unless ::Test::Unit::TestCase < integration_module
42
+ Debug.puts "Applying #{integration_module.description}"
43
+ ::Test::Unit::TestCase.send(:include, integration_module)
32
44
  end
33
-
34
- if (test_unit_version == Gem::Version.new('1.x')) || (test_unit_version == Gem::Version.new('1.2.3'))
35
- if RUBY_VERSION < '1.8.6'
36
- include Mocha::Integration::TestUnit::RubyVersion185AndBelow
37
- else
38
- include Mocha::Integration::TestUnit::RubyVersion186AndAbove
39
- end
40
- elsif Gem::Requirement.new('2.0.0').satisfied_by?(test_unit_version)
41
- include Mocha::Integration::TestUnit::GemVersion200
42
- elsif Gem::Requirement.new('>= 2.0.1', '<= 2.0.2').satisfied_by?(test_unit_version)
43
- include Mocha::Integration::TestUnit::GemVersion201To202
44
- elsif Gem::Requirement.new('>= 2.0.3', '<= 2.2.0').satisfied_by?(test_unit_version)
45
- include Mocha::Integration::TestUnit::GemVersion203To220
46
- elsif Gem::Requirement.new('>= 2.3.0', '<= 2.5.2').satisfied_by?(test_unit_version)
47
- include Mocha::Integration::TestUnit::GemVersion230To252
48
- else
49
- raise "No Mocha monkey-patch for Test::Unit version"
50
- end
51
-
45
+ true
52
46
  end
53
47
  end
54
48
  end
55
-
56
49
  end
@@ -1,46 +1,14 @@
1
- require 'mocha/options'
2
1
  require 'mocha/deprecation'
2
+ require 'mocha/integration/test_unit'
3
+ require 'mocha/integration/mini_test'
3
4
 
4
5
  module Mocha
5
-
6
6
  module Integration
7
-
8
- class << self
9
-
10
- def monkey_patches
11
- patches = []
12
- if test_unit_testcase_defined? && !test_unit_testcase_inherits_from_miniunit_testcase?
13
- patches << 'mocha/integration/test_unit'
14
- end
15
- if mini_test_testcase_defined?
16
- patches << 'mocha/integration/mini_test'
17
- end
18
- patches
19
- end
20
-
21
- def test_unit_testcase_defined?
22
- defined?(Test::Unit::TestCase)
23
- end
24
-
25
- def mini_test_testcase_defined?
26
- defined?(MiniTest::Unit::TestCase)
27
- end
28
-
29
- def test_unit_testcase_inherits_from_miniunit_testcase?
30
- test_unit_testcase_defined? && mini_test_testcase_defined? && Test::Unit::TestCase.ancestors.include?(MiniTest::Unit::TestCase)
7
+ def self.activate
8
+ if [Integration::TestUnit, Integration::MiniTest].map(&:activate).none?
9
+ Deprecation.warning("Test::Unit or MiniTest must be loaded *before* Mocha.")
10
+ Deprecation.warning("If you're integrating with a test library other than Test::Unit or MiniTest, you should use `require 'mocha/api'` instead of `require 'mocha'`.")
31
11
  end
32
-
33
12
  end
34
-
35
13
  end
36
-
37
- end
38
-
39
- unless Mocha::Integration.monkey_patches.any?
40
- Mocha::Deprecation.warning("Test::Unit or MiniTest must be loaded *before* Mocha.")
41
- Mocha::Deprecation.warning("If you're integrating with another test library, you should probably require 'mocha_standalone' instead of 'mocha'")
42
- end
43
-
44
- Mocha::Integration.monkey_patches.each do |patch|
45
- require patch
46
14
  end
@@ -9,7 +9,7 @@ module Mocha
9
9
  end
10
10
 
11
11
  def match?(actual_method_name)
12
- @expected_method_name == actual_method_name
12
+ @expected_method_name == actual_method_name.to_sym
13
13
  end
14
14
 
15
15
  def mocha_inspect
@@ -0,0 +1,14 @@
1
+ require 'mocha/module_method'
2
+
3
+ module Mocha
4
+
5
+ # @private
6
+ module ModuleMethods
7
+
8
+ def stubba_method
9
+ Mocha::ModuleMethod
10
+ end
11
+
12
+ end
13
+
14
+ end
@@ -1,8 +1,5 @@
1
1
  require 'mocha/mockery'
2
2
  require 'mocha/instance_method'
3
- require 'mocha/class_method'
4
- require 'mocha/module_method'
5
- require 'mocha/any_instance_method'
6
3
  require 'mocha/argument_iterator'
7
4
  require 'mocha/expectation_error_factory'
8
5
 
@@ -173,84 +170,4 @@ module Mocha
173
170
 
174
171
  end
175
172
 
176
- # @private
177
- module ModuleMethods
178
-
179
- def stubba_method
180
- Mocha::ModuleMethod
181
- end
182
-
183
- end
184
-
185
- # Methods added to all classes to allow mocking and stubbing on real (i.e. non-mock) objects.
186
- module ClassMethods
187
-
188
- # @private
189
- def stubba_method
190
- Mocha::ClassMethod
191
- end
192
-
193
- # @private
194
- class AnyInstance
195
-
196
- def initialize(klass)
197
- @stubba_object = klass
198
- end
199
-
200
- def mocha
201
- @mocha ||= Mocha::Mockery.instance.mock_impersonating_any_instance_of(@stubba_object)
202
- end
203
-
204
- def stubba_method
205
- Mocha::AnyInstanceMethod
206
- end
207
-
208
- def stubba_object
209
- @stubba_object
210
- end
211
-
212
- def method_exists?(method, include_public_methods = true)
213
- if include_public_methods
214
- return true if @stubba_object.public_instance_methods(include_superclass_methods = true).include?(method)
215
- end
216
- return true if @stubba_object.protected_instance_methods(include_superclass_methods = true).include?(method)
217
- return true if @stubba_object.private_instance_methods(include_superclass_methods = true).include?(method)
218
- return false
219
- end
220
-
221
- end
222
-
223
- # @return [Mock] a mock object which will detect calls to any instance of this class.
224
- # @raise [StubbingError] if attempting to stub method which is not allowed.
225
- #
226
- # @example Return false to invocation of +Product#save+ for any instance of +Product+.
227
- # Product.any_instance.stubs(:save).returns(false)
228
- # product_1 = Product.new
229
- # assert_equal false, product_1.save
230
- # product_2 = Product.new
231
- # assert_equal false, product_2.save
232
- def any_instance
233
- if frozen?
234
- raise StubbingError.new("can't stub method on frozen object: #{mocha_inspect}.any_instance", caller)
235
- end
236
- @any_instance ||= AnyInstance.new(self)
237
- end
238
-
239
- end
240
-
241
- end
242
-
243
- # @private
244
- class Object
245
- include Mocha::ObjectMethods
246
- end
247
-
248
- # @private
249
- class Module
250
- include Mocha::ModuleMethods
251
- end
252
-
253
- # @private
254
- class Class
255
- include Mocha::ClassMethods
256
173
  end
@@ -0,0 +1,10 @@
1
+ require 'mocha/version'
2
+ require 'mocha/integration'
3
+
4
+ module Mocha
5
+ def self.activate
6
+ Integration.activate
7
+ end
8
+ end
9
+
10
+ Mocha.activate
@@ -1 +1,4 @@
1
1
  require 'mocha/api'
2
+ require 'mocha/deprecation'
3
+
4
+ Mocha::Deprecation.warning("`require 'mocha/standalone'` has been deprecated. Please use `require 'mocha/api' instead.")
data/lib/mocha/version.rb CHANGED
@@ -1,3 +1,3 @@
1
1
  module Mocha
2
- VERSION = "0.12.7"
2
+ VERSION = "0.13.0"
3
3
  end
data/lib/mocha.rb CHANGED
@@ -1,4 +1,8 @@
1
1
  require 'mocha/version'
2
2
  require 'mocha/integration'
3
- require 'mocha_standalone'
4
- require 'mocha/configuration'
3
+ require 'mocha/deprecation'
4
+
5
+ Mocha::Deprecation.warning("Change `require 'mocha'` to `require 'mocha/setup'`.")
6
+
7
+ require 'mocha/setup'
8
+
@@ -1,2 +1,4 @@
1
1
  require 'mocha/api'
2
- require 'mocha/object'
2
+ require 'mocha/deprecation'
3
+
4
+ Mocha::Deprecation.warning("`require 'mocha_standalone'` has been deprecated. Please use `require 'mocha/api' instead.")
data/mocha.gemspec CHANGED
@@ -11,15 +11,16 @@ Gem::Specification.new do |s|
11
11
  s.authors = ["James Mead"]
12
12
  s.description = "Mocking and stubbing library with JMock/SchMock syntax, which allows mocking and stubbing of methods on real (non-mock) classes."
13
13
  s.email = "mocha-developer@googlegroups.com"
14
- s.extra_rdoc_files = ["README.rdoc", "COPYING.rdoc"]
15
14
 
16
- s.files = `git ls-files`.split("\n") - ["TODO", ".travis.yml", ".gitignore"]
15
+ s.files = `git ls-files`.split("\n")
16
+ s.files.delete(".travis.yml")
17
+ s.files.delete(".gitignore")
17
18
 
18
19
  s.homepage = "http://gofreerange.com/mocha/docs"
19
- s.rdoc_options = ["--title", "Mocha", "--main", "README.rdoc", "--line-numbers"]
20
20
  s.require_paths = ["lib"]
21
21
  s.rubyforge_project = "mocha"
22
22
  s.summary = "Mocking and stubbing library"
23
+ s.has_rdoc = "yard"
23
24
 
24
25
  s.add_dependency("metaclass", "~> 0.0.1")
25
26
  if s.respond_to? :specification_version then
@@ -29,18 +30,24 @@ Gem::Specification.new do |s|
29
30
  if Gem::Version.new(Gem::VERSION) >= Gem::Version.new('1.2.0') then
30
31
  s.add_development_dependency("rake", ">= 0")
31
32
  s.add_development_dependency("introspection", "~> 0.0.1")
32
- s.add_development_dependency("yard")
33
- s.add_development_dependency("rdoc")
33
+ unless ENV["MOCHA_NO_DOCS"]
34
+ s.add_development_dependency("yard")
35
+ s.add_development_dependency("redcarpet", "~> 1")
36
+ end
34
37
  else
35
38
  s.add_dependency("rake", ">= 0")
36
39
  s.add_dependency("introspection", "~> 0.0.1")
37
- s.add_dependency("yard")
38
- s.add_dependency("rdoc")
40
+ unless ENV["MOCHA_NO_DOCS"]
41
+ s.add_dependency("yard")
42
+ s.add_dependency("redcarpet", "~> 1")
43
+ end
39
44
  end
40
45
  else
41
46
  s.add_dependency("rake", ">= 0")
42
47
  s.add_dependency("introspection", "~> 0.0.1")
43
- s.add_dependency("yard")
44
- s.add_dependency("rdoc")
48
+ unless ENV["MOCHA_NO_DOCS"]
49
+ s.add_dependency("yard")
50
+ s.add_dependency("redcarpet", "~> 1")
51
+ end
45
52
  end
46
53
  end
@@ -1,5 +1,5 @@
1
1
  require File.expand_path('../acceptance_test_helper', __FILE__)
2
- require 'mocha'
2
+ require 'mocha/setup'
3
3
 
4
4
  class Bug18914Test < Test::Unit::TestCase
5
5
 
@@ -1,5 +1,5 @@
1
1
  require File.expand_path('../acceptance_test_helper', __FILE__)
2
- require 'mocha'
2
+ require 'mocha/setup'
3
3
 
4
4
  class Bug21465Test < Test::Unit::TestCase
5
5
 
@@ -1,5 +1,5 @@
1
1
  require File.expand_path('../acceptance_test_helper', __FILE__)
2
- require 'mocha'
2
+ require 'mocha/setup'
3
3
 
4
4
  class Bug21563Test < Test::Unit::TestCase
5
5
 
@@ -1,5 +1,5 @@
1
1
  require File.expand_path('../acceptance_test_helper', __FILE__)
2
- require 'mocha'
2
+ require 'mocha/setup'
3
3
 
4
4
  class ExceptionRescueTest < Test::Unit::TestCase
5
5
 
@@ -1,5 +1,5 @@
1
1
  require File.expand_path('../acceptance_test_helper', __FILE__)
2
- require 'mocha'
2
+ require 'mocha/setup'
3
3
 
4
4
  class ExpectationsOnMultipleMethodsTest < Test::Unit::TestCase
5
5
 
@@ -1,5 +1,5 @@
1
1
  require File.expand_path('../acceptance_test_helper', __FILE__)
2
- require 'mocha'
2
+ require 'mocha/setup'
3
3
 
4
4
  class ExpectedInvocationCountTest < Test::Unit::TestCase
5
5
 
@@ -1,5 +1,5 @@
1
1
  require File.expand_path('../acceptance_test_helper', __FILE__)
2
- require 'mocha'
2
+ require 'mocha/setup'
3
3
 
4
4
  class FailureMessagesTest < Test::Unit::TestCase
5
5
 
@@ -1,5 +1,5 @@
1
1
  require File.expand_path('../acceptance_test_helper', __FILE__)
2
- require 'mocha'
2
+ require 'mocha/setup'
3
3
 
4
4
  class Issue65Test < Test::Unit::TestCase
5
5
 
@@ -1,5 +1,5 @@
1
1
  require File.expand_path('../acceptance_test_helper', __FILE__)
2
- require 'mocha'
2
+ require 'mocha/setup'
3
3
 
4
4
  class Issue70Test < Test::Unit::TestCase
5
5
 
@@ -1,5 +1,5 @@
1
1
  require File.expand_path('../../test_helper', __FILE__)
2
- require 'mocha'
2
+ require 'mocha/setup'
3
3
 
4
4
  class MochaExampleTest < Test::Unit::TestCase
5
5
 
@@ -1,5 +1,5 @@
1
1
  require File.expand_path('../acceptance_test_helper', __FILE__)
2
- require 'mocha'
2
+ require 'mocha/setup'
3
3
  require 'execution_point'
4
4
 
5
5
  class MochaTestResultTest < Test::Unit::TestCase
@@ -1,5 +1,5 @@
1
1
  require File.expand_path('../acceptance_test_helper', __FILE__)
2
- require 'mocha'
2
+ require 'mocha/setup'
3
3
 
4
4
  class MockTest < Test::Unit::TestCase
5
5
 
@@ -1,5 +1,5 @@
1
1
  require File.expand_path('../acceptance_test_helper', __FILE__)
2
- require 'mocha'
2
+ require 'mocha/setup'
3
3
 
4
4
  class MockWithInitializerBlockTest < Test::Unit::TestCase
5
5
 
@@ -1,5 +1,5 @@
1
1
  require File.expand_path('../acceptance_test_helper', __FILE__)
2
- require 'mocha'
2
+ require 'mocha/setup'
3
3
 
4
4
  class MockedMethodDispatchTest < Test::Unit::TestCase
5
5
 
@@ -1,5 +1,5 @@
1
1
  require File.expand_path('../acceptance_test_helper', __FILE__)
2
- require 'mocha'
2
+ require 'mocha/setup'
3
3
 
4
4
  class FailureMessageTest < Test::Unit::TestCase
5
5