mocha 1.1.0 → 1.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.
- checksums.yaml +5 -5
- data/.github/FUNDING.yml +1 -0
- data/.rubocop.yml +61 -0
- data/.rubocop_todo.yml +27 -0
- data/.yardopts +1 -0
- data/CONTRIBUTING.md +4 -9
- data/README.md +114 -28
- data/RELEASE.md +248 -1
- data/Rakefile +53 -35
- data/gemfiles/Gemfile.test-unit.latest +5 -1
- data/init.rb +1 -3
- data/lib/mocha/any_instance_method.rb +12 -72
- data/lib/mocha/api.rb +121 -56
- data/lib/mocha/argument_iterator.rb +4 -8
- data/lib/mocha/backtrace_filter.rb +1 -5
- data/lib/mocha/block_matcher.rb +31 -0
- data/lib/mocha/cardinality.rb +60 -49
- data/lib/mocha/central.rb +21 -12
- data/lib/mocha/change_state_side_effect.rb +0 -4
- data/lib/mocha/class_methods.rb +19 -20
- data/lib/mocha/configuration.rb +361 -18
- data/lib/mocha/debug.rb +3 -2
- data/lib/mocha/deprecation.rb +8 -11
- data/lib/mocha/detection/mini_test.rb +0 -2
- data/lib/mocha/detection/test_unit.rb +3 -5
- data/lib/mocha/error_with_filtered_backtrace.rb +13 -0
- data/lib/mocha/exception_raiser.rb +4 -6
- data/lib/mocha/expectation.rb +125 -89
- data/lib/mocha/expectation_error.rb +1 -1
- data/lib/mocha/expectation_error_factory.rb +0 -1
- data/lib/mocha/expectation_list.rb +7 -11
- data/lib/mocha/hooks.rb +1 -3
- data/lib/mocha/in_state_ordering_constraint.rb +0 -4
- data/lib/mocha/inspect.rb +30 -38
- data/lib/mocha/instance_method.rb +15 -8
- data/lib/mocha/integration/mini_test/adapter.rb +2 -4
- data/lib/mocha/integration/mini_test/exception_translation.rb +1 -1
- data/lib/mocha/integration/mini_test/nothing.rb +4 -4
- data/lib/mocha/integration/mini_test/version_13.rb +4 -1
- data/lib/mocha/integration/mini_test/version_140.rb +4 -1
- data/lib/mocha/integration/mini_test/version_141.rb +4 -1
- data/lib/mocha/integration/mini_test/version_142_to_172.rb +4 -1
- data/lib/mocha/integration/mini_test/version_200.rb +4 -1
- data/lib/mocha/integration/mini_test/version_201_to_222.rb +4 -1
- data/lib/mocha/integration/mini_test/version_2110_to_2111.rb +4 -1
- data/lib/mocha/integration/mini_test/version_2112_to_320.rb +4 -1
- data/lib/mocha/integration/mini_test/version_230_to_2101.rb +4 -1
- data/lib/mocha/integration/mini_test.rb +7 -0
- data/lib/mocha/integration/monkey_patcher.rb +8 -2
- data/lib/mocha/integration/test_unit/adapter.rb +5 -6
- data/lib/mocha/integration/test_unit/gem_version_200.rb +5 -2
- data/lib/mocha/integration/test_unit/gem_version_201_to_202.rb +5 -2
- data/lib/mocha/integration/test_unit/gem_version_203_to_220.rb +5 -2
- data/lib/mocha/integration/test_unit/gem_version_230_to_250.rb +5 -2
- data/lib/mocha/integration/test_unit/nothing.rb +4 -4
- data/lib/mocha/integration/test_unit/ruby_version_185_and_below.rb +4 -1
- data/lib/mocha/integration/test_unit/ruby_version_186_and_above.rb +4 -1
- data/lib/mocha/integration/test_unit.rb +7 -0
- data/lib/mocha/integration.rb +2 -5
- data/lib/mocha/invocation.rb +77 -0
- data/lib/mocha/is_a.rb +0 -2
- data/lib/mocha/logger.rb +0 -4
- data/lib/mocha/macos_version.rb +5 -0
- data/lib/mocha/method_matcher.rb +1 -5
- data/lib/mocha/minitest.rb +8 -0
- data/lib/mocha/mock.rb +94 -46
- data/lib/mocha/mockery.rb +72 -98
- data/lib/mocha/names.rb +2 -12
- data/lib/mocha/not_initialized_error.rb +7 -0
- data/lib/mocha/object_methods.rb +25 -31
- data/lib/mocha/parameter_matchers/all_of.rb +2 -8
- data/lib/mocha/parameter_matchers/any_of.rb +2 -8
- data/lib/mocha/parameter_matchers/any_parameters.rb +3 -9
- data/lib/mocha/parameter_matchers/anything.rb +2 -8
- data/lib/mocha/parameter_matchers/base.rb +6 -12
- data/lib/mocha/parameter_matchers/equals.rb +1 -7
- data/lib/mocha/parameter_matchers/{query_string.rb → equivalent_uri.rb} +15 -15
- data/lib/mocha/parameter_matchers/has_entries.rb +2 -7
- data/lib/mocha/parameter_matchers/has_entry.rb +26 -21
- data/lib/mocha/parameter_matchers/has_key.rb +2 -7
- data/lib/mocha/parameter_matchers/has_keys.rb +53 -0
- data/lib/mocha/parameter_matchers/has_value.rb +2 -7
- data/lib/mocha/parameter_matchers/includes.rb +50 -8
- data/lib/mocha/parameter_matchers/instance_methods.rb +18 -0
- data/lib/mocha/parameter_matchers/instance_of.rb +0 -6
- data/lib/mocha/parameter_matchers/is_a.rb +2 -7
- data/lib/mocha/parameter_matchers/kind_of.rb +2 -6
- data/lib/mocha/parameter_matchers/not.rb +2 -7
- data/lib/mocha/parameter_matchers/optionally.rb +4 -10
- data/lib/mocha/parameter_matchers/regexp_matches.rb +0 -6
- data/lib/mocha/parameter_matchers/responds_with.rb +3 -8
- data/lib/mocha/parameter_matchers/yaml_equivalent.rb +2 -6
- data/lib/mocha/parameter_matchers.rb +3 -4
- data/lib/mocha/parameters_matcher.rb +6 -9
- data/lib/mocha/raised_exception.rb +11 -0
- data/lib/mocha/receivers.rb +10 -14
- data/lib/mocha/return_values.rb +4 -8
- data/lib/mocha/ruby_version.rb +4 -0
- data/lib/mocha/sequence.rb +4 -9
- data/lib/mocha/setup.rb +5 -0
- data/lib/mocha/single_return_value.rb +2 -5
- data/lib/mocha/singleton_class.rb +9 -0
- data/lib/mocha/state_machine.rb +33 -46
- data/lib/mocha/stubbed_method.rb +125 -0
- data/lib/mocha/stubbing_error.rb +2 -13
- data/lib/mocha/test_unit.rb +7 -2
- data/lib/mocha/thrower.rb +4 -6
- data/lib/mocha/thrown_object.rb +12 -0
- data/lib/mocha/version.rb +1 -1
- data/lib/mocha/yield_parameters.rb +7 -17
- data/lib/mocha.rb +8 -0
- data/mocha.gemspec +42 -40
- data/yard-templates/default/layout/html/google_analytics.erb +6 -9
- data/yard-templates/default/layout/html/setup.rb +2 -3
- metadata +45 -191
- data/bin/build-matrix +0 -71
- data/gemfiles/Gemfile.minitest.1.3.0 +0 -7
- data/gemfiles/Gemfile.minitest.1.4.0 +0 -7
- data/gemfiles/Gemfile.minitest.1.4.1 +0 -7
- data/gemfiles/Gemfile.minitest.1.4.2 +0 -7
- data/gemfiles/Gemfile.minitest.2.0.0 +0 -7
- data/gemfiles/Gemfile.minitest.2.0.1 +0 -7
- data/gemfiles/Gemfile.minitest.2.11.0 +0 -7
- data/gemfiles/Gemfile.minitest.2.11.2 +0 -7
- data/gemfiles/Gemfile.minitest.2.3.0 +0 -7
- data/gemfiles/Gemfile.test-unit.2.0.0 +0 -7
- data/gemfiles/Gemfile.test-unit.2.0.1 +0 -7
- data/gemfiles/Gemfile.test-unit.2.0.3 +0 -7
- data/lib/mocha/class_method.rb +0 -127
- data/lib/mocha/mini_test.rb +0 -3
- data/lib/mocha/module_method.rb +0 -16
- data/lib/mocha/module_methods.rb +0 -14
- data/lib/mocha/multiple_yields.rb +0 -20
- data/lib/mocha/no_yields.rb +0 -11
- data/lib/mocha/parameter_matchers/object.rb +0 -17
- data/lib/mocha/pretty_parameters.rb +0 -28
- data/lib/mocha/single_yield.rb +0 -18
- data/lib/mocha/standalone.rb +0 -4
- data/lib/mocha/unexpected_invocation.rb +0 -26
- data/lib/mocha_standalone.rb +0 -4
- data/test/acceptance/acceptance_test_helper.rb +0 -41
- data/test/acceptance/bug_18914_test.rb +0 -43
- data/test/acceptance/bug_21465_test.rb +0 -34
- data/test/acceptance/bug_21563_test.rb +0 -25
- data/test/acceptance/exception_rescue_test.rb +0 -55
- data/test/acceptance/expectations_on_multiple_methods_test.rb +0 -55
- data/test/acceptance/expected_invocation_count_test.rb +0 -232
- data/test/acceptance/failure_messages_test.rb +0 -64
- data/test/acceptance/issue_65_test.rb +0 -63
- data/test/acceptance/issue_70_test.rb +0 -55
- data/test/acceptance/mocha_example_test.rb +0 -98
- data/test/acceptance/mocha_test_result_test.rb +0 -84
- data/test/acceptance/mock_test.rb +0 -100
- data/test/acceptance/mock_with_initializer_block_test.rb +0 -51
- data/test/acceptance/mocked_methods_dispatch_test.rb +0 -78
- data/test/acceptance/multiple_expectations_failure_message_test.rb +0 -68
- data/test/acceptance/optional_parameters_test.rb +0 -70
- data/test/acceptance/parameter_matcher_test.rb +0 -337
- data/test/acceptance/partial_mocks_test.rb +0 -47
- data/test/acceptance/prepend_test.rb +0 -88
- data/test/acceptance/raise_exception_test.rb +0 -39
- data/test/acceptance/return_value_test.rb +0 -52
- data/test/acceptance/sequence_test.rb +0 -192
- data/test/acceptance/states_test.rb +0 -70
- data/test/acceptance/stub_any_instance_method_defined_on_superclass_test.rb +0 -34
- data/test/acceptance/stub_any_instance_method_test.rb +0 -238
- data/test/acceptance/stub_class_method_defined_on_active_record_association_proxy_test.rb +0 -106
- data/test/acceptance/stub_class_method_defined_on_class_test.rb +0 -78
- data/test/acceptance/stub_class_method_defined_on_module_test.rb +0 -75
- data/test/acceptance/stub_class_method_defined_on_superclass_test.rb +0 -112
- data/test/acceptance/stub_everything_test.rb +0 -56
- data/test/acceptance/stub_instance_method_defined_on_active_record_association_proxy_test.rb +0 -93
- data/test/acceptance/stub_instance_method_defined_on_class_and_aliased_test.rb +0 -69
- data/test/acceptance/stub_instance_method_defined_on_class_test.rb +0 -69
- data/test/acceptance/stub_instance_method_defined_on_kernel_module_test.rb +0 -75
- data/test/acceptance/stub_instance_method_defined_on_module_test.rb +0 -75
- data/test/acceptance/stub_instance_method_defined_on_object_class_test.rb +0 -75
- data/test/acceptance/stub_instance_method_defined_on_singleton_class_test.rb +0 -70
- data/test/acceptance/stub_instance_method_defined_on_superclass_test.rb +0 -72
- data/test/acceptance/stub_module_method_test.rb +0 -163
- data/test/acceptance/stub_test.rb +0 -52
- data/test/acceptance/stubba_example_test.rb +0 -102
- data/test/acceptance/stubba_test_result_test.rb +0 -66
- data/test/acceptance/stubbing_error_backtrace_test.rb +0 -64
- data/test/acceptance/stubbing_frozen_object_test.rb +0 -88
- data/test/acceptance/stubbing_method_accepting_block_parameter_test.rb +0 -48
- data/test/acceptance/stubbing_method_unnecessarily_test.rb +0 -65
- data/test/acceptance/stubbing_nil_test.rb +0 -59
- data/test/acceptance/stubbing_non_existent_any_instance_method_test.rb +0 -130
- data/test/acceptance/stubbing_non_existent_class_method_test.rb +0 -157
- data/test/acceptance/stubbing_non_existent_instance_method_test.rb +0 -147
- data/test/acceptance/stubbing_non_public_any_instance_method_test.rb +0 -130
- data/test/acceptance/stubbing_non_public_class_method_test.rb +0 -163
- data/test/acceptance/stubbing_non_public_instance_method_test.rb +0 -143
- data/test/acceptance/stubbing_on_non_mock_object_test.rb +0 -64
- data/test/acceptance/stubbing_same_class_method_on_parent_and_child_classes_test.rb +0 -35
- data/test/acceptance/throw_test.rb +0 -45
- data/test/acceptance/unexpected_invocation_test.rb +0 -25
- data/test/acceptance/unstubbing_test.rb +0 -168
- data/test/assertions.rb +0 -6
- data/test/deprecation_disabler.rb +0 -15
- data/test/execution_point.rb +0 -36
- data/test/integration/mini_test_test.rb +0 -8
- data/test/integration/shared_tests.rb +0 -174
- data/test/integration/test_unit_test.rb +0 -8
- data/test/method_definer.rb +0 -24
- data/test/mini_test_result.rb +0 -90
- data/test/minitest_result.rb +0 -49
- data/test/simple_counter.rb +0 -13
- data/test/test_helper.rb +0 -50
- data/test/test_runner.rb +0 -58
- data/test/test_unit_result.rb +0 -20
- data/test/unit/any_instance_method_test.rb +0 -132
- data/test/unit/array_inspect_test.rb +0 -16
- data/test/unit/backtrace_filter_test.rb +0 -19
- data/test/unit/cardinality_test.rb +0 -56
- data/test/unit/central_test.rb +0 -100
- data/test/unit/change_state_side_effect_test.rb +0 -41
- data/test/unit/class_method_test.rb +0 -223
- data/test/unit/class_methods_test.rb +0 -40
- data/test/unit/configuration_test.rb +0 -38
- data/test/unit/date_time_inspect_test.rb +0 -21
- data/test/unit/exception_raiser_test.rb +0 -42
- data/test/unit/expectation_list_test.rb +0 -82
- data/test/unit/expectation_test.rb +0 -497
- data/test/unit/hash_inspect_test.rb +0 -16
- data/test/unit/hooks_test.rb +0 -29
- data/test/unit/in_state_ordering_constraint_test.rb +0 -43
- data/test/unit/method_matcher_test.rb +0 -28
- data/test/unit/mock_test.rb +0 -341
- data/test/unit/mockery_test.rb +0 -151
- data/test/unit/module_methods_test.rb +0 -19
- data/test/unit/multiple_yields_test.rb +0 -18
- data/test/unit/no_yields_test.rb +0 -18
- data/test/unit/object_inspect_test.rb +0 -38
- data/test/unit/object_methods_test.rb +0 -46
- data/test/unit/parameter_matchers/all_of_test.rb +0 -26
- data/test/unit/parameter_matchers/any_of_test.rb +0 -26
- data/test/unit/parameter_matchers/anything_test.rb +0 -21
- data/test/unit/parameter_matchers/equals_test.rb +0 -25
- data/test/unit/parameter_matchers/has_entries_test.rb +0 -51
- data/test/unit/parameter_matchers/has_entry_test.rb +0 -129
- data/test/unit/parameter_matchers/has_key_test.rb +0 -55
- data/test/unit/parameter_matchers/has_value_test.rb +0 -57
- data/test/unit/parameter_matchers/includes_test.rb +0 -59
- data/test/unit/parameter_matchers/instance_of_test.rb +0 -25
- data/test/unit/parameter_matchers/is_a_test.rb +0 -25
- data/test/unit/parameter_matchers/kind_of_test.rb +0 -25
- data/test/unit/parameter_matchers/not_test.rb +0 -26
- data/test/unit/parameter_matchers/regexp_matches_test.rb +0 -46
- data/test/unit/parameter_matchers/responds_with_test.rb +0 -32
- data/test/unit/parameter_matchers/stub_matcher.rb +0 -27
- data/test/unit/parameter_matchers/yaml_equivalent_test.rb +0 -25
- data/test/unit/parameters_matcher_test.rb +0 -121
- data/test/unit/receivers_test.rb +0 -66
- data/test/unit/return_values_test.rb +0 -63
- data/test/unit/sequence_test.rb +0 -104
- data/test/unit/single_return_value_test.rb +0 -14
- data/test/unit/single_yield_test.rb +0 -18
- data/test/unit/state_machine_test.rb +0 -98
- data/test/unit/string_inspect_test.rb +0 -11
- data/test/unit/thrower_test.rb +0 -20
- data/test/unit/yield_parameters_test.rb +0 -93
@@ -2,16 +2,16 @@ module Mocha
|
|
2
2
|
module Integration
|
3
3
|
module MiniTest
|
4
4
|
module Nothing
|
5
|
-
def self.applicable_to?(
|
5
|
+
def self.applicable_to?(_test_unit_version, _ruby_version = nil)
|
6
6
|
true
|
7
7
|
end
|
8
8
|
|
9
9
|
def self.description
|
10
|
-
|
10
|
+
'nothing (no MiniTest integration available)'
|
11
11
|
end
|
12
12
|
|
13
|
-
def self.included(
|
14
|
-
raise
|
13
|
+
def self.included(_mod)
|
14
|
+
raise 'No MiniTest integration available'
|
15
15
|
end
|
16
16
|
end
|
17
17
|
end
|
@@ -11,7 +11,7 @@ module Mocha
|
|
11
11
|
end
|
12
12
|
|
13
13
|
def self.description
|
14
|
-
|
14
|
+
'monkey patch for MiniTest gem v1.3'
|
15
15
|
end
|
16
16
|
|
17
17
|
def self.included(mod)
|
@@ -19,12 +19,14 @@ module Mocha
|
|
19
19
|
end
|
20
20
|
|
21
21
|
module RunMethodPatch
|
22
|
+
# rubocop:disable all
|
22
23
|
def run runner
|
23
24
|
assertion_counter = AssertionCounter.new(self)
|
24
25
|
result = '.'
|
25
26
|
begin
|
26
27
|
begin
|
27
28
|
@passed = nil
|
29
|
+
mocha_setup
|
28
30
|
self.setup
|
29
31
|
self.__send__ self.name
|
30
32
|
mocha_verify(assertion_counter)
|
@@ -44,6 +46,7 @@ module Mocha
|
|
44
46
|
end
|
45
47
|
result
|
46
48
|
end
|
49
|
+
# rubocop:enable all
|
47
50
|
end
|
48
51
|
end
|
49
52
|
end
|
@@ -11,7 +11,7 @@ module Mocha
|
|
11
11
|
end
|
12
12
|
|
13
13
|
def self.description
|
14
|
-
|
14
|
+
'monkey patch for MiniTest gem v1.4.0'
|
15
15
|
end
|
16
16
|
|
17
17
|
def self.included(mod)
|
@@ -19,12 +19,14 @@ module Mocha
|
|
19
19
|
end
|
20
20
|
|
21
21
|
module RunMethodPatch
|
22
|
+
# rubocop:disable all
|
22
23
|
def run runner
|
23
24
|
assertion_counter = AssertionCounter.new(self)
|
24
25
|
result = '.'
|
25
26
|
begin
|
26
27
|
begin
|
27
28
|
@passed = nil
|
29
|
+
mocha_setup
|
28
30
|
self.setup
|
29
31
|
self.__send__ self.__name__
|
30
32
|
mocha_verify(assertion_counter)
|
@@ -44,6 +46,7 @@ module Mocha
|
|
44
46
|
end
|
45
47
|
result
|
46
48
|
end
|
49
|
+
# rubocop:enable all
|
47
50
|
end
|
48
51
|
end
|
49
52
|
end
|
@@ -11,7 +11,7 @@ module Mocha
|
|
11
11
|
end
|
12
12
|
|
13
13
|
def self.description
|
14
|
-
|
14
|
+
'monkey patch for MiniTest gem v1.4.1'
|
15
15
|
end
|
16
16
|
|
17
17
|
def self.included(mod)
|
@@ -19,6 +19,7 @@ module Mocha
|
|
19
19
|
end
|
20
20
|
|
21
21
|
module RunMethodPatch
|
22
|
+
# rubocop:disable all
|
22
23
|
def run runner
|
23
24
|
trap 'INFO' do
|
24
25
|
warn '%s#%s %.2fs' % [self.class, self.__name__,
|
@@ -31,6 +32,7 @@ module Mocha
|
|
31
32
|
begin
|
32
33
|
begin
|
33
34
|
@passed = nil
|
35
|
+
mocha_setup
|
34
36
|
self.setup
|
35
37
|
self.__send__ self.__name__
|
36
38
|
mocha_verify(assertion_counter)
|
@@ -55,6 +57,7 @@ module Mocha
|
|
55
57
|
end
|
56
58
|
result
|
57
59
|
end
|
60
|
+
# rubocop:enable all
|
58
61
|
end
|
59
62
|
end
|
60
63
|
end
|
@@ -11,7 +11,7 @@ module Mocha
|
|
11
11
|
end
|
12
12
|
|
13
13
|
def self.description
|
14
|
-
|
14
|
+
'monkey patch for MiniTest gem >= v1.4.2 and <= v1.7.2'
|
15
15
|
end
|
16
16
|
|
17
17
|
def self.included(mod)
|
@@ -19,6 +19,7 @@ module Mocha
|
|
19
19
|
end
|
20
20
|
|
21
21
|
module RunMethodPatch
|
22
|
+
# rubocop:disable all
|
22
23
|
def run runner
|
23
24
|
trap 'INFO' do
|
24
25
|
warn '%s#%s %.2fs' % [self.class, self.__name__,
|
@@ -31,6 +32,7 @@ module Mocha
|
|
31
32
|
begin
|
32
33
|
begin
|
33
34
|
@passed = nil
|
35
|
+
mocha_setup
|
34
36
|
self.setup
|
35
37
|
self.__send__ self.__name__
|
36
38
|
mocha_verify(assertion_counter)
|
@@ -55,6 +57,7 @@ module Mocha
|
|
55
57
|
end
|
56
58
|
result
|
57
59
|
end
|
60
|
+
# rubocop:enable all
|
58
61
|
end
|
59
62
|
end
|
60
63
|
end
|
@@ -11,7 +11,7 @@ module Mocha
|
|
11
11
|
end
|
12
12
|
|
13
13
|
def self.description
|
14
|
-
|
14
|
+
'monkey patch for MiniTest gem v2.0.0'
|
15
15
|
end
|
16
16
|
|
17
17
|
def self.included(mod)
|
@@ -19,6 +19,7 @@ module Mocha
|
|
19
19
|
end
|
20
20
|
|
21
21
|
module RunMethodPatch
|
22
|
+
# rubocop:disable all
|
22
23
|
def run runner
|
23
24
|
trap 'INFO' do
|
24
25
|
time = Time.now - runner.start_time
|
@@ -31,6 +32,7 @@ module Mocha
|
|
31
32
|
begin
|
32
33
|
begin
|
33
34
|
@passed = nil
|
35
|
+
mocha_setup
|
34
36
|
self.setup
|
35
37
|
self.__send__ self.__name__
|
36
38
|
mocha_verify(assertion_counter)
|
@@ -56,6 +58,7 @@ module Mocha
|
|
56
58
|
end
|
57
59
|
result
|
58
60
|
end
|
61
|
+
# rubocop:enable all
|
59
62
|
end
|
60
63
|
end
|
61
64
|
end
|
@@ -11,7 +11,7 @@ module Mocha
|
|
11
11
|
end
|
12
12
|
|
13
13
|
def self.description
|
14
|
-
|
14
|
+
'monkey patch for MiniTest gem >= v2.0.1 <= v2.2.2'
|
15
15
|
end
|
16
16
|
|
17
17
|
def self.included(mod)
|
@@ -19,6 +19,7 @@ module Mocha
|
|
19
19
|
end
|
20
20
|
|
21
21
|
module RunMethodPatch
|
22
|
+
# rubocop:disable all
|
22
23
|
def run runner
|
23
24
|
trap 'INFO' do
|
24
25
|
time = runner.start_time ? Time.now - runner.start_time : 0
|
@@ -31,6 +32,7 @@ module Mocha
|
|
31
32
|
begin
|
32
33
|
begin
|
33
34
|
@passed = nil
|
35
|
+
mocha_setup
|
34
36
|
self.setup
|
35
37
|
self.__send__ self.__name__
|
36
38
|
mocha_verify(assertion_counter)
|
@@ -56,6 +58,7 @@ module Mocha
|
|
56
58
|
end
|
57
59
|
result
|
58
60
|
end
|
61
|
+
# rubocop:enable all
|
59
62
|
end
|
60
63
|
end
|
61
64
|
end
|
@@ -11,7 +11,7 @@ module Mocha
|
|
11
11
|
end
|
12
12
|
|
13
13
|
def self.description
|
14
|
-
|
14
|
+
'monkey patch for MiniTest gem >= v2.11.0 <= v2.11.1'
|
15
15
|
end
|
16
16
|
|
17
17
|
def self.included(mod)
|
@@ -19,6 +19,7 @@ module Mocha
|
|
19
19
|
end
|
20
20
|
|
21
21
|
module RunMethodPatch
|
22
|
+
# rubocop:disable all
|
22
23
|
def run runner
|
23
24
|
trap 'INFO' do
|
24
25
|
time = runner.start_time ? Time.now - runner.start_time : 0
|
@@ -32,6 +33,7 @@ module Mocha
|
|
32
33
|
begin
|
33
34
|
@passed = nil
|
34
35
|
self.before_setup
|
36
|
+
mocha_setup
|
35
37
|
self.setup
|
36
38
|
self.after_setup
|
37
39
|
self.run_test self.__name__
|
@@ -60,6 +62,7 @@ module Mocha
|
|
60
62
|
end
|
61
63
|
result
|
62
64
|
end
|
65
|
+
# rubocop:enable all
|
63
66
|
end
|
64
67
|
end
|
65
68
|
end
|
@@ -11,7 +11,7 @@ module Mocha
|
|
11
11
|
end
|
12
12
|
|
13
13
|
def self.description
|
14
|
-
|
14
|
+
'monkey patch for MiniTest gem >= v2.11.2 <= v3.2.0'
|
15
15
|
end
|
16
16
|
|
17
17
|
def self.included(mod)
|
@@ -19,6 +19,7 @@ module Mocha
|
|
19
19
|
end
|
20
20
|
|
21
21
|
module RunMethodPatch
|
22
|
+
# rubocop:disable all
|
22
23
|
def run runner
|
23
24
|
trap "INFO" do
|
24
25
|
runner.report.each_with_index do |msg, i|
|
@@ -35,6 +36,7 @@ module Mocha
|
|
35
36
|
begin
|
36
37
|
@passed = nil
|
37
38
|
self.before_setup
|
39
|
+
mocha_setup
|
38
40
|
self.setup
|
39
41
|
self.after_setup
|
40
42
|
self.run_test self.__name__
|
@@ -63,6 +65,7 @@ module Mocha
|
|
63
65
|
end
|
64
66
|
result
|
65
67
|
end
|
68
|
+
# rubocop:enable all
|
66
69
|
end
|
67
70
|
end
|
68
71
|
end
|
@@ -11,7 +11,7 @@ module Mocha
|
|
11
11
|
end
|
12
12
|
|
13
13
|
def self.description
|
14
|
-
|
14
|
+
'monkey patch for MiniTest gem >= v2.3.0 <= v2.10.1'
|
15
15
|
end
|
16
16
|
|
17
17
|
def self.included(mod)
|
@@ -19,6 +19,7 @@ module Mocha
|
|
19
19
|
end
|
20
20
|
|
21
21
|
module RunMethodPatch
|
22
|
+
# rubocop:disable all
|
22
23
|
def run runner
|
23
24
|
trap 'INFO' do
|
24
25
|
time = runner.start_time ? Time.now - runner.start_time : 0
|
@@ -31,6 +32,7 @@ module Mocha
|
|
31
32
|
begin
|
32
33
|
begin
|
33
34
|
@passed = nil
|
35
|
+
mocha_setup
|
34
36
|
self.setup
|
35
37
|
self.run_setup_hooks
|
36
38
|
self.__send__ self.__name__
|
@@ -58,6 +60,7 @@ module Mocha
|
|
58
60
|
end
|
59
61
|
result
|
60
62
|
end
|
63
|
+
# rubocop:enable all
|
61
64
|
end
|
62
65
|
end
|
63
66
|
end
|
@@ -14,6 +14,8 @@ require 'mocha/integration/mini_test/version_2110_to_2111'
|
|
14
14
|
require 'mocha/integration/mini_test/version_2112_to_320'
|
15
15
|
require 'mocha/integration/mini_test/adapter'
|
16
16
|
|
17
|
+
require 'mocha/deprecation'
|
18
|
+
|
17
19
|
module Mocha
|
18
20
|
module Integration
|
19
21
|
module MiniTest
|
@@ -39,6 +41,11 @@ module Mocha
|
|
39
41
|
|
40
42
|
target = Detection::MiniTest.testcase
|
41
43
|
unless target < integration_module
|
44
|
+
unless integration_module == MiniTest::Adapter
|
45
|
+
Deprecation.warning(
|
46
|
+
'Versions of minitest earlier than v3.3.0 will not be supported in future versions of Mocha.'
|
47
|
+
)
|
48
|
+
end
|
42
49
|
Debug.puts "Applying #{integration_module.description}"
|
43
50
|
target.send(:include, integration_module)
|
44
51
|
end
|
@@ -4,13 +4,19 @@ module Mocha
|
|
4
4
|
module Integration
|
5
5
|
module MonkeyPatcher
|
6
6
|
def self.apply(mod, run_method_patch)
|
7
|
-
|
7
|
+
if mod < Mocha::API
|
8
|
+
Debug.puts "Mocha::API already included in #{mod}"
|
9
|
+
else
|
8
10
|
mod.send(:include, Mocha::API)
|
9
11
|
end
|
10
|
-
|
12
|
+
if mod.method_defined?(:run_before_mocha)
|
13
|
+
Debug.puts "#{mod}#run_before_mocha method already defined"
|
14
|
+
elsif mod.method_defined?(:run)
|
11
15
|
mod.send(:alias_method, :run_before_mocha, :run)
|
12
16
|
mod.send(:remove_method, :run)
|
13
17
|
mod.send(:include, run_method_patch)
|
18
|
+
else
|
19
|
+
raise "Unable to monkey-patch #{mod}, because it does not define a `#run` method"
|
14
20
|
end
|
15
21
|
end
|
16
22
|
end
|
@@ -5,7 +5,6 @@ require 'mocha/expectation_error'
|
|
5
5
|
module Mocha
|
6
6
|
module Integration
|
7
7
|
module TestUnit
|
8
|
-
|
9
8
|
# Integrates Mocha into recent versions of Test::Unit.
|
10
9
|
#
|
11
10
|
# See the source code for an example of how to integrate Mocha into a test library.
|
@@ -13,13 +12,13 @@ module Mocha
|
|
13
12
|
include Mocha::API
|
14
13
|
|
15
14
|
# @private
|
16
|
-
def self.applicable_to?(test_unit_version,
|
15
|
+
def self.applicable_to?(test_unit_version, _ruby_version = nil)
|
17
16
|
Gem::Requirement.new('>= 2.5.1').satisfied_by?(test_unit_version)
|
18
17
|
end
|
19
18
|
|
20
19
|
# @private
|
21
20
|
def self.description
|
22
|
-
|
21
|
+
'adapter for Test::Unit gem >= v2.5.1'
|
23
22
|
end
|
24
23
|
|
25
24
|
# @private
|
@@ -39,10 +38,10 @@ module Mocha
|
|
39
38
|
private
|
40
39
|
|
41
40
|
# @private
|
42
|
-
def handle_mocha_expectation_error(
|
43
|
-
return false unless
|
41
|
+
def handle_mocha_expectation_error(exception)
|
42
|
+
return false unless exception.is_a?(Mocha::ExpectationError)
|
44
43
|
problem_occurred
|
45
|
-
add_failure(
|
44
|
+
add_failure(exception.message, exception.backtrace)
|
46
45
|
true
|
47
46
|
end
|
48
47
|
end
|
@@ -6,12 +6,12 @@ module Mocha
|
|
6
6
|
module Integration
|
7
7
|
module TestUnit
|
8
8
|
module GemVersion200
|
9
|
-
def self.applicable_to?(test_unit_version,
|
9
|
+
def self.applicable_to?(test_unit_version, _ruby_version = nil)
|
10
10
|
Gem::Requirement.new('2.0.0').satisfied_by?(test_unit_version)
|
11
11
|
end
|
12
12
|
|
13
13
|
def self.description
|
14
|
-
|
14
|
+
'monkey patch for Test::Unit gem v2.0.0'
|
15
15
|
end
|
16
16
|
|
17
17
|
def self.included(mod)
|
@@ -19,6 +19,7 @@ module Mocha
|
|
19
19
|
end
|
20
20
|
|
21
21
|
module RunMethodPatch
|
22
|
+
# rubocop:disable all
|
22
23
|
def run(result)
|
23
24
|
assertion_counter = AssertionCounter.new(self)
|
24
25
|
begin
|
@@ -26,6 +27,7 @@ module Mocha
|
|
26
27
|
yield(Test::Unit::TestCase::STARTED, name)
|
27
28
|
begin
|
28
29
|
begin
|
30
|
+
mocha_setup
|
29
31
|
run_setup
|
30
32
|
__send__(@method_name)
|
31
33
|
mocha_verify(assertion_counter)
|
@@ -52,6 +54,7 @@ module Mocha
|
|
52
54
|
@_result = nil
|
53
55
|
end
|
54
56
|
end
|
57
|
+
# rubocop:enable all
|
55
58
|
end
|
56
59
|
end
|
57
60
|
end
|
@@ -6,12 +6,12 @@ module Mocha
|
|
6
6
|
module Integration
|
7
7
|
module TestUnit
|
8
8
|
module GemVersion201To202
|
9
|
-
def self.applicable_to?(test_unit_version,
|
9
|
+
def self.applicable_to?(test_unit_version, _ruby_version = nil)
|
10
10
|
Gem::Requirement.new('>= 2.0.1', '<= 2.0.2').satisfied_by?(test_unit_version)
|
11
11
|
end
|
12
12
|
|
13
13
|
def self.description
|
14
|
-
|
14
|
+
'monkey patch for Test::Unit gem >= v2.0.1 and <= v2.0.2'
|
15
15
|
end
|
16
16
|
|
17
17
|
def self.included(mod)
|
@@ -19,6 +19,7 @@ module Mocha
|
|
19
19
|
end
|
20
20
|
|
21
21
|
module RunMethodPatch
|
22
|
+
# rubocop:disable all
|
22
23
|
def run(result)
|
23
24
|
assertion_counter = AssertionCounter.new(self)
|
24
25
|
begin
|
@@ -26,6 +27,7 @@ module Mocha
|
|
26
27
|
yield(Test::Unit::TestCase::STARTED, name)
|
27
28
|
begin
|
28
29
|
begin
|
30
|
+
mocha_setup
|
29
31
|
run_setup
|
30
32
|
run_test
|
31
33
|
mocha_verify(assertion_counter)
|
@@ -52,6 +54,7 @@ module Mocha
|
|
52
54
|
@_result = nil
|
53
55
|
end
|
54
56
|
end
|
57
|
+
# rubocop:enable all
|
55
58
|
end
|
56
59
|
end
|
57
60
|
end
|
@@ -6,12 +6,12 @@ module Mocha
|
|
6
6
|
module Integration
|
7
7
|
module TestUnit
|
8
8
|
module GemVersion203To220
|
9
|
-
def self.applicable_to?(test_unit_version,
|
9
|
+
def self.applicable_to?(test_unit_version, _ruby_version = nil)
|
10
10
|
Gem::Requirement.new('>= 2.0.3', '<= 2.2.0').satisfied_by?(test_unit_version)
|
11
11
|
end
|
12
12
|
|
13
13
|
def self.description
|
14
|
-
|
14
|
+
'monkey patch for Test::Unit gem >= v2.0.3 and <= v2.2.0'
|
15
15
|
end
|
16
16
|
|
17
17
|
def self.included(mod)
|
@@ -19,6 +19,7 @@ module Mocha
|
|
19
19
|
end
|
20
20
|
|
21
21
|
module RunMethodPatch
|
22
|
+
# rubocop:disable all
|
22
23
|
def run(result)
|
23
24
|
assertion_counter = AssertionCounter.new(self)
|
24
25
|
begin
|
@@ -26,6 +27,7 @@ module Mocha
|
|
26
27
|
yield(Test::Unit::TestCase::STARTED, name)
|
27
28
|
begin
|
28
29
|
begin
|
30
|
+
mocha_setup
|
29
31
|
run_setup
|
30
32
|
run_test
|
31
33
|
mocha_verify(assertion_counter)
|
@@ -52,6 +54,7 @@ module Mocha
|
|
52
54
|
# @_result = nil # For test-spec's after_all :<
|
53
55
|
end
|
54
56
|
end
|
57
|
+
# rubocop:enable all
|
55
58
|
end
|
56
59
|
end
|
57
60
|
end
|
@@ -6,12 +6,12 @@ module Mocha
|
|
6
6
|
module Integration
|
7
7
|
module TestUnit
|
8
8
|
module GemVersion230To250
|
9
|
-
def self.applicable_to?(test_unit_version,
|
9
|
+
def self.applicable_to?(test_unit_version, _ruby_version = nil)
|
10
10
|
Gem::Requirement.new('>= 2.3.0', '<= 2.5.0').satisfied_by?(test_unit_version)
|
11
11
|
end
|
12
12
|
|
13
13
|
def self.description
|
14
|
-
|
14
|
+
'monkey patch for Test::Unit gem >= v2.3.0 and <= v2.5.0'
|
15
15
|
end
|
16
16
|
|
17
17
|
def self.included(mod)
|
@@ -19,6 +19,7 @@ module Mocha
|
|
19
19
|
end
|
20
20
|
|
21
21
|
module RunMethodPatch
|
22
|
+
# rubocop:disable all
|
22
23
|
def run(result)
|
23
24
|
assertion_counter = AssertionCounter.new(self)
|
24
25
|
begin
|
@@ -28,6 +29,7 @@ module Mocha
|
|
28
29
|
yield(Test::Unit::TestCase::STARTED_OBJECT, self)
|
29
30
|
begin
|
30
31
|
begin
|
32
|
+
mocha_setup
|
31
33
|
run_setup
|
32
34
|
run_test
|
33
35
|
run_cleanup
|
@@ -58,6 +60,7 @@ module Mocha
|
|
58
60
|
# @_result = nil # For test-spec's after_all :<
|
59
61
|
end
|
60
62
|
end
|
63
|
+
# rubocop:enable all
|
61
64
|
end
|
62
65
|
end
|
63
66
|
end
|
@@ -2,16 +2,16 @@ module Mocha
|
|
2
2
|
module Integration
|
3
3
|
module TestUnit
|
4
4
|
module Nothing
|
5
|
-
def self.applicable_to?(
|
5
|
+
def self.applicable_to?(_test_unit_version, _ruby_version = nil)
|
6
6
|
true
|
7
7
|
end
|
8
8
|
|
9
9
|
def self.description
|
10
|
-
|
10
|
+
'nothing (no Test::Unit integration available)'
|
11
11
|
end
|
12
12
|
|
13
|
-
def self.included(
|
14
|
-
raise
|
13
|
+
def self.included(_mod)
|
14
|
+
raise 'No Test::Unit integration available'
|
15
15
|
end
|
16
16
|
end
|
17
17
|
end
|
@@ -11,7 +11,7 @@ module Mocha
|
|
11
11
|
end
|
12
12
|
|
13
13
|
def self.description
|
14
|
-
|
14
|
+
'monkey patch for standard library in Ruby <= v1.8.5'
|
15
15
|
end
|
16
16
|
|
17
17
|
def self.included(mod)
|
@@ -19,12 +19,14 @@ module Mocha
|
|
19
19
|
end
|
20
20
|
|
21
21
|
module RunMethodPatch
|
22
|
+
# rubocop:disable all
|
22
23
|
def run(result)
|
23
24
|
assertion_counter = AssertionCounter.new(self)
|
24
25
|
yield(Test::Unit::TestCase::STARTED, name)
|
25
26
|
@_result = result
|
26
27
|
begin
|
27
28
|
begin
|
29
|
+
mocha_setup
|
28
30
|
setup
|
29
31
|
__send__(@method_name)
|
30
32
|
mocha_verify(assertion_counter)
|
@@ -51,6 +53,7 @@ module Mocha
|
|
51
53
|
result.add_run
|
52
54
|
yield(Test::Unit::TestCase::FINISHED, name)
|
53
55
|
end
|
56
|
+
# rubocop:enable all
|
54
57
|
end
|
55
58
|
end
|
56
59
|
end
|
@@ -11,7 +11,7 @@ module Mocha
|
|
11
11
|
end
|
12
12
|
|
13
13
|
def self.description
|
14
|
-
|
14
|
+
'monkey patch for standard library Test::Unit in Ruby >= v1.8.6'
|
15
15
|
end
|
16
16
|
|
17
17
|
def self.included(mod)
|
@@ -19,12 +19,14 @@ module Mocha
|
|
19
19
|
end
|
20
20
|
|
21
21
|
module RunMethodPatch
|
22
|
+
# rubocop:disable all
|
22
23
|
def run(result)
|
23
24
|
assertion_counter = AssertionCounter.new(self)
|
24
25
|
yield(Test::Unit::TestCase::STARTED, name)
|
25
26
|
@_result = result
|
26
27
|
begin
|
27
28
|
begin
|
29
|
+
mocha_setup
|
28
30
|
setup
|
29
31
|
__send__(@method_name)
|
30
32
|
mocha_verify(assertion_counter)
|
@@ -53,6 +55,7 @@ module Mocha
|
|
53
55
|
result.add_run
|
54
56
|
yield(Test::Unit::TestCase::FINISHED, name)
|
55
57
|
end
|
58
|
+
# rubocop:enable all
|
56
59
|
end
|
57
60
|
end
|
58
61
|
end
|
@@ -11,6 +11,8 @@ require 'mocha/integration/test_unit/gem_version_203_to_220'
|
|
11
11
|
require 'mocha/integration/test_unit/gem_version_230_to_250'
|
12
12
|
require 'mocha/integration/test_unit/adapter'
|
13
13
|
|
14
|
+
require 'mocha/deprecation'
|
15
|
+
|
14
16
|
module Mocha
|
15
17
|
module Integration
|
16
18
|
module TestUnit
|
@@ -34,6 +36,11 @@ module Mocha
|
|
34
36
|
].detect { |m| m.applicable_to?(test_unit_version, ruby_version) }
|
35
37
|
|
36
38
|
unless ::Test::Unit::TestCase < integration_module
|
39
|
+
unless integration_module == TestUnit::Adapter
|
40
|
+
Deprecation.warning(
|
41
|
+
'Versions of test-unit earlier than v2.5.1 will not be supported in future versions of Mocha.'
|
42
|
+
)
|
43
|
+
end
|
37
44
|
Debug.puts "Applying #{integration_module.description}"
|
38
45
|
::Test::Unit::TestCase.send(:include, integration_module)
|
39
46
|
end
|
data/lib/mocha/integration.rb
CHANGED
@@ -1,14 +1,11 @@
|
|
1
|
-
require 'mocha/deprecation'
|
2
1
|
require 'mocha/integration/test_unit'
|
3
2
|
require 'mocha/integration/mini_test'
|
4
3
|
|
5
4
|
module Mocha
|
6
5
|
module Integration
|
7
6
|
def self.activate
|
8
|
-
|
9
|
-
|
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/setup'`.")
|
11
|
-
end
|
7
|
+
return unless [Integration::TestUnit, Integration::MiniTest].map(&:activate).none?
|
8
|
+
raise "Test::Unit or Minitest must be loaded *before* `require 'mocha/setup'`."
|
12
9
|
end
|
13
10
|
end
|
14
11
|
end
|