mocha 1.6.0 → 1.7.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/.rubocop.yml +58 -0
- data/.rubocop_todo.yml +50 -0
- data/RELEASE.md +7 -0
- data/Rakefile +35 -28
- data/bin/build-matrix +17 -18
- data/lib/mocha/any_instance_method.rb +19 -25
- data/lib/mocha/api.rb +1 -5
- data/lib/mocha/argument_iterator.rb +4 -8
- data/lib/mocha/backtrace_filter.rb +1 -5
- data/lib/mocha/cardinality.rb +20 -27
- data/lib/mocha/central.rb +7 -15
- data/lib/mocha/change_state_side_effect.rb +0 -4
- data/lib/mocha/class_method.rb +31 -37
- data/lib/mocha/class_methods.rb +5 -13
- data/lib/mocha/configuration.rb +3 -9
- data/lib/mocha/debug.rb +3 -2
- data/lib/mocha/deprecation.rb +4 -11
- data/lib/mocha/detection/mini_test.rb +0 -2
- data/lib/mocha/detection/test_unit.rb +4 -4
- data/lib/mocha/error_with_filtered_backtrace.rb +0 -4
- data/lib/mocha/exception_raiser.rb +2 -5
- data/lib/mocha/expectation.rb +15 -18
- data/lib/mocha/expectation_error.rb +2 -0
- data/lib/mocha/expectation_error_factory.rb +0 -1
- data/lib/mocha/expectation_list.rb +2 -6
- data/lib/mocha/hooks.rb +0 -1
- data/lib/mocha/in_state_ordering_constraint.rb +0 -4
- data/lib/mocha/inspect.rb +3 -5
- data/lib/mocha/instance_method.rb +0 -2
- data/lib/mocha/integration.rb +3 -4
- 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 +3 -1
- data/lib/mocha/integration/mini_test/version_140.rb +3 -1
- data/lib/mocha/integration/mini_test/version_141.rb +3 -1
- data/lib/mocha/integration/mini_test/version_142_to_172.rb +3 -1
- data/lib/mocha/integration/mini_test/version_200.rb +3 -1
- data/lib/mocha/integration/mini_test/version_201_to_222.rb +3 -1
- data/lib/mocha/integration/mini_test/version_2110_to_2111.rb +3 -1
- data/lib/mocha/integration/mini_test/version_2112_to_320.rb +3 -1
- data/lib/mocha/integration/mini_test/version_230_to_2101.rb +3 -1
- data/lib/mocha/integration/monkey_patcher.rb +5 -7
- data/lib/mocha/integration/test_unit/adapter.rb +5 -6
- data/lib/mocha/integration/test_unit/gem_version_200.rb +4 -2
- data/lib/mocha/integration/test_unit/gem_version_201_to_202.rb +4 -2
- data/lib/mocha/integration/test_unit/gem_version_203_to_220.rb +4 -2
- data/lib/mocha/integration/test_unit/gem_version_230_to_250.rb +4 -2
- data/lib/mocha/integration/test_unit/nothing.rb +4 -4
- data/lib/mocha/integration/test_unit/ruby_version_185_and_below.rb +3 -1
- data/lib/mocha/integration/test_unit/ruby_version_186_and_above.rb +3 -1
- data/lib/mocha/is_a.rb +0 -2
- data/lib/mocha/logger.rb +0 -4
- data/lib/mocha/method_matcher.rb +1 -5
- data/lib/mocha/minitest.rb +1 -1
- data/lib/mocha/mock.rb +25 -30
- data/lib/mocha/mockery.rb +27 -43
- data/lib/mocha/module_method.rb +0 -2
- data/lib/mocha/module_methods.rb +0 -4
- data/lib/mocha/multiple_yields.rb +0 -5
- data/lib/mocha/names.rb +1 -11
- data/lib/mocha/no_yields.rb +1 -7
- data/lib/mocha/not_initialized_error.rb +0 -2
- data/lib/mocha/object_methods.rb +10 -14
- data/lib/mocha/parameter_matchers.rb +0 -2
- data/lib/mocha/parameter_matchers/all_of.rb +1 -7
- data/lib/mocha/parameter_matchers/any_of.rb +1 -7
- 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 +0 -6
- data/lib/mocha/parameter_matchers/equivalent_uri.rb +6 -6
- data/lib/mocha/parameter_matchers/has_entries.rb +2 -6
- data/lib/mocha/parameter_matchers/has_entry.rb +8 -11
- data/lib/mocha/parameter_matchers/has_key.rb +2 -6
- data/lib/mocha/parameter_matchers/has_value.rb +2 -6
- data/lib/mocha/parameter_matchers/includes.rb +2 -6
- data/lib/mocha/parameter_matchers/instance_of.rb +0 -6
- data/lib/mocha/parameter_matchers/is_a.rb +2 -6
- data/lib/mocha/parameter_matchers/kind_of.rb +2 -6
- data/lib/mocha/parameter_matchers/not.rb +2 -6
- data/lib/mocha/parameter_matchers/object.rb +0 -2
- 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/parameters_matcher.rb +6 -9
- data/lib/mocha/pretty_parameters.rb +0 -4
- data/lib/mocha/receivers.rb +6 -12
- data/lib/mocha/return_values.rb +3 -7
- data/lib/mocha/sequence.rb +4 -9
- data/lib/mocha/single_return_value.rb +0 -4
- data/lib/mocha/single_yield.rb +0 -5
- data/lib/mocha/state_machine.rb +6 -10
- data/lib/mocha/stubbing_error.rb +0 -2
- data/lib/mocha/test_unit.rb +1 -1
- data/lib/mocha/thrower.rb +2 -5
- data/lib/mocha/unexpected_invocation.rb +3 -5
- data/lib/mocha/version.rb +1 -1
- data/lib/mocha/yield_parameters.rb +3 -7
- data/mocha.gemspec +34 -58
- data/test/acceptance/acceptance_test_helper.rb +0 -4
- data/test/acceptance/bug_18914_test.rb +7 -12
- data/test/acceptance/bug_21465_test.rb +0 -2
- data/test/acceptance/bug_21563_test.rb +0 -2
- data/test/acceptance/exception_rescue_test.rb +7 -8
- data/test/acceptance/expectations_on_multiple_methods_test.rb +2 -1
- data/test/acceptance/expected_invocation_count_test.rb +27 -29
- data/test/acceptance/failure_messages_test.rb +3 -5
- data/test/acceptance/issue_272_test.rb +0 -1
- data/test/acceptance/issue_65_test.rb +15 -13
- data/test/acceptance/issue_70_test.rb +0 -1
- data/test/acceptance/mocha_example_test.rb +5 -6
- data/test/acceptance/mocha_test_result_test.rb +7 -7
- data/test/acceptance/mock_test.rb +2 -4
- data/test/acceptance/mock_with_initializer_block_test.rb +0 -2
- data/test/acceptance/mocked_methods_dispatch_test.rb +0 -2
- data/test/acceptance/multiple_expectations_failure_message_test.rb +16 -17
- data/test/acceptance/optional_parameters_test.rb +0 -2
- data/test/acceptance/parameter_matcher_test.rb +2 -3
- data/test/acceptance/partial_mocks_test.rb +4 -6
- data/test/acceptance/prepend_test.rb +14 -16
- data/test/acceptance/prevent_use_of_mocha_outside_test_test.rb +0 -2
- data/test/acceptance/raise_exception_test.rb +2 -4
- data/test/acceptance/return_value_test.rb +0 -2
- data/test/acceptance/sequence_test.rb +9 -11
- data/test/acceptance/states_test.rb +6 -4
- data/test/acceptance/stub_any_instance_method_defined_on_superclass_test.rb +5 -4
- data/test/acceptance/stub_any_instance_method_test.rb +19 -17
- data/test/acceptance/stub_class_method_defined_on_active_record_association_proxy_test.rb +8 -8
- data/test/acceptance/stub_class_method_defined_on_class_test.rb +2 -1
- data/test/acceptance/stub_class_method_defined_on_module_test.rb +0 -1
- data/test/acceptance/stub_class_method_defined_on_superclass_test.rb +7 -4
- data/test/acceptance/stub_everything_test.rb +1 -3
- data/test/acceptance/stub_instance_method_defined_on_active_record_association_proxy_test.rb +6 -7
- data/test/acceptance/stub_instance_method_defined_on_class_and_aliased_test.rb +0 -1
- data/test/acceptance/stub_instance_method_defined_on_class_test.rb +0 -1
- data/test/acceptance/stub_instance_method_defined_on_kernel_module_test.rb +0 -1
- data/test/acceptance/stub_instance_method_defined_on_module_test.rb +0 -1
- data/test/acceptance/stub_instance_method_defined_on_object_class_test.rb +2 -1
- data/test/acceptance/stub_instance_method_defined_on_singleton_class_test.rb +0 -2
- data/test/acceptance/stub_instance_method_defined_on_superclass_test.rb +0 -1
- data/test/acceptance/stub_module_method_test.rb +13 -13
- data/test/acceptance/stub_test.rb +1 -3
- data/test/acceptance/stubba_example_test.rb +6 -14
- data/test/acceptance/stubba_test_result_test.rb +5 -8
- data/test/acceptance/stubbing_error_backtrace_test.rb +2 -2
- data/test/acceptance/stubbing_frozen_object_test.rb +2 -1
- data/test/acceptance/stubbing_method_accepting_block_parameter_test.rb +12 -7
- data/test/acceptance/stubbing_method_unnecessarily_test.rb +0 -2
- data/test/acceptance/stubbing_nil_test.rb +4 -5
- data/test/acceptance/stubbing_non_existent_any_instance_method_test.rb +1 -3
- data/test/acceptance/stubbing_non_existent_class_method_test.rb +3 -3
- data/test/acceptance/stubbing_non_existent_instance_method_test.rb +1 -3
- data/test/acceptance/stubbing_non_public_any_instance_method_test.rb +0 -2
- data/test/acceptance/stubbing_non_public_class_method_test.rb +3 -3
- data/test/acceptance/stubbing_non_public_instance_method_test.rb +1 -3
- data/test/acceptance/stubbing_on_non_mock_object_test.rb +4 -10
- data/test/acceptance/stubbing_same_class_method_on_parent_and_child_classes_test.rb +3 -4
- data/test/acceptance/throw_test.rb +0 -2
- data/test/acceptance/unexpected_invocation_test.rb +2 -3
- data/test/acceptance/unstubbing_test.rb +41 -14
- data/test/deprecation_disabler.rb +0 -1
- data/test/execution_point.rb +2 -4
- data/test/integration/mini_test_test.rb +2 -2
- data/test/integration/shared_tests.rb +24 -22
- data/test/integration/test_unit_test.rb +2 -2
- data/test/method_definer.rb +1 -3
- data/test/mini_test_result.rb +17 -11
- data/test/minitest_result.rb +0 -1
- data/test/simple_counter.rb +0 -2
- data/test/test_helper.rb +13 -5
- data/test/test_runner.rb +2 -4
- data/test/test_unit_result.rb +4 -2
- data/test/unit/any_instance_method_test.rb +31 -17
- data/test/unit/array_inspect_test.rb +2 -4
- data/test/unit/backtrace_filter_test.rb +3 -5
- data/test/unit/cardinality_test.rb +0 -2
- data/test/unit/central_test.rb +26 -27
- data/test/unit/change_state_side_effect_test.rb +0 -4
- data/test/unit/class_method_test.rb +59 -34
- data/test/unit/class_methods_test.rb +9 -11
- data/test/unit/configuration_test.rb +1 -2
- data/test/unit/date_time_inspect_test.rb +1 -3
- data/test/unit/exception_raiser_test.rb +0 -2
- data/test/unit/expectation_list_test.rb +0 -2
- data/test/unit/expectation_test.rb +41 -46
- data/test/unit/hash_inspect_test.rb +3 -5
- data/test/unit/hooks_test.rb +9 -4
- data/test/unit/in_state_ordering_constraint_test.rb +0 -4
- data/test/unit/method_matcher_test.rb +1 -3
- data/test/unit/mock_test.rb +35 -22
- data/test/unit/mockery_test.rb +28 -26
- data/test/unit/module_methods_test.rb +0 -2
- data/test/unit/multiple_yields_test.rb +0 -2
- data/test/unit/no_yields_test.rb +0 -2
- data/test/unit/object_inspect_test.rb +16 -7
- data/test/unit/object_methods_test.rb +6 -8
- data/test/unit/parameter_matchers/all_of_test.rb +0 -2
- data/test/unit/parameter_matchers/any_of_test.rb +0 -2
- data/test/unit/parameter_matchers/anything_test.rb +2 -4
- data/test/unit/parameter_matchers/equals_test.rb +1 -3
- data/test/unit/parameter_matchers/equivalent_uri_test.rb +0 -1
- data/test/unit/parameter_matchers/has_entries_test.rb +2 -2
- data/test/unit/parameter_matchers/has_entry_test.rb +13 -14
- data/test/unit/parameter_matchers/has_key_test.rb +0 -1
- data/test/unit/parameter_matchers/has_value_test.rb +0 -2
- data/test/unit/parameter_matchers/includes_test.rb +8 -9
- data/test/unit/parameter_matchers/instance_of_test.rb +1 -3
- data/test/unit/parameter_matchers/is_a_test.rb +1 -3
- data/test/unit/parameter_matchers/kind_of_test.rb +1 -3
- data/test/unit/parameter_matchers/not_test.rb +0 -2
- data/test/unit/parameter_matchers/regexp_matches_test.rb +1 -2
- data/test/unit/parameter_matchers/responds_with_test.rb +9 -3
- data/test/unit/parameter_matchers/stub_matcher.rb +0 -4
- data/test/unit/parameter_matchers/yaml_equivalent_test.rb +1 -3
- data/test/unit/parameters_matcher_test.rb +2 -4
- data/test/unit/receivers_test.rb +8 -6
- data/test/unit/return_values_test.rb +3 -5
- data/test/unit/sequence_test.rb +1 -5
- data/test/unit/single_return_value_test.rb +0 -2
- data/test/unit/single_yield_test.rb +0 -2
- data/test/unit/state_machine_test.rb +1 -3
- data/test/unit/string_inspect_test.rb +2 -4
- data/test/unit/thrower_test.rb +0 -2
- data/test/unit/yield_parameters_test.rb +0 -2
- data/yard-templates/default/layout/html/setup.rb +2 -3
- metadata +22 -6
@@ -2,15 +2,13 @@ require File.expand_path('../../test_helper', __FILE__)
|
|
2
2
|
require 'mocha/inspect'
|
3
3
|
|
4
4
|
class HashInspectTest < Mocha::TestCase
|
5
|
-
|
6
5
|
def test_should_keep_spacing_between_key_value
|
7
|
-
hash = {:a => true}
|
6
|
+
hash = { :a => true }
|
8
7
|
assert_equal '{:a => true}', hash.mocha_inspect
|
9
8
|
end
|
10
9
|
|
11
10
|
def test_should_use_mocha_inspect_on_each_item
|
12
|
-
hash = {:a => 'mocha'}
|
13
|
-
assert_equal %{
|
11
|
+
hash = { :a => 'mocha' }
|
12
|
+
assert_equal %({:a => "mocha"}), hash.mocha_inspect
|
14
13
|
end
|
15
|
-
|
16
14
|
end
|
data/test/unit/hooks_test.rb
CHANGED
@@ -3,18 +3,19 @@ require 'mocha/hooks'
|
|
3
3
|
require 'mocha/mockery'
|
4
4
|
|
5
5
|
class HooksTest < Mocha::TestCase
|
6
|
+
# rubocop:disable Style/ClassAndModuleChildren
|
6
7
|
class Mocha::Mockery
|
7
8
|
class << self
|
8
9
|
attr_writer :instances
|
9
10
|
end
|
10
11
|
end
|
12
|
+
# rubocop:enable Style/ClassAndModuleChildren
|
11
13
|
|
12
14
|
class FakeMockery
|
13
|
-
def verify(*args)
|
14
|
-
end
|
15
|
+
def verify(*args); end
|
15
16
|
|
16
17
|
def teardown
|
17
|
-
raise
|
18
|
+
raise 'exception within Mockery#teardown'
|
18
19
|
end
|
19
20
|
end
|
20
21
|
|
@@ -23,7 +24,11 @@ class HooksTest < Mocha::TestCase
|
|
23
24
|
mockery = FakeMockery.new
|
24
25
|
Mocha::Mockery.instances = [mockery]
|
25
26
|
|
26
|
-
|
27
|
+
begin
|
28
|
+
fake_test_case.mocha_teardown
|
29
|
+
rescue StandardError
|
30
|
+
nil
|
31
|
+
end
|
27
32
|
|
28
33
|
assert_kind_of Mocha::Mockery::Null, Mocha::Mockery.instance
|
29
34
|
end
|
@@ -3,11 +3,9 @@ require File.expand_path('../../test_helper', __FILE__)
|
|
3
3
|
require 'mocha/in_state_ordering_constraint'
|
4
4
|
|
5
5
|
class InStateOrderingConstraintTest < Mocha::TestCase
|
6
|
-
|
7
6
|
include Mocha
|
8
7
|
|
9
8
|
class FakeStatePredicate
|
10
|
-
|
11
9
|
attr_writer :active, :description
|
12
10
|
|
13
11
|
def active?
|
@@ -17,7 +15,6 @@ class InStateOrderingConstraintTest < Mocha::TestCase
|
|
17
15
|
def mocha_inspect
|
18
16
|
@description
|
19
17
|
end
|
20
|
-
|
21
18
|
end
|
22
19
|
|
23
20
|
def test_should_allow_invocation_when_state_is_active
|
@@ -39,5 +36,4 @@ class InStateOrderingConstraintTest < Mocha::TestCase
|
|
39
36
|
|
40
37
|
assert_equal 'when the-state-predicate', ordering_constraint.mocha_inspect
|
41
38
|
end
|
42
|
-
|
43
39
|
end
|
@@ -2,7 +2,6 @@ require File.expand_path('../../test_helper', __FILE__)
|
|
2
2
|
require 'mocha/method_matcher'
|
3
3
|
|
4
4
|
class MethodMatcherTest < Mocha::TestCase
|
5
|
-
|
6
5
|
include Mocha
|
7
6
|
|
8
7
|
def test_should_match_if_actual_method_name_is_same_as_expected_method_name
|
@@ -22,7 +21,6 @@ class MethodMatcherTest < Mocha::TestCase
|
|
22
21
|
|
23
22
|
def test_should_describe_what_method_is_expected
|
24
23
|
method_matcher = MethodMatcher.new(:method_name)
|
25
|
-
assert_equal
|
24
|
+
assert_equal 'method_name', method_matcher.mocha_inspect
|
26
25
|
end
|
27
|
-
|
28
26
|
end
|
data/test/unit/mock_test.rb
CHANGED
@@ -6,22 +6,21 @@ require 'set'
|
|
6
6
|
require 'simple_counter'
|
7
7
|
|
8
8
|
class MockTest < Mocha::TestCase
|
9
|
-
|
10
9
|
include Mocha
|
11
10
|
|
12
11
|
def test_should_set_single_expectation
|
13
|
-
|
14
|
-
|
15
|
-
|
16
|
-
|
17
|
-
|
12
|
+
mock = build_mock
|
13
|
+
mock.expects(:method1).returns(1)
|
14
|
+
assert_nothing_raised(ExpectationErrorFactory.exception_class) do
|
15
|
+
assert_equal 1, mock.method1
|
16
|
+
end
|
18
17
|
end
|
19
18
|
|
20
19
|
def test_should_build_and_store_expectations
|
21
|
-
|
22
|
-
|
23
|
-
|
24
|
-
|
20
|
+
mock = build_mock
|
21
|
+
expectation = mock.expects(:method1)
|
22
|
+
assert_not_nil expectation
|
23
|
+
assert_equal [expectation], mock.__expectations__.to_a
|
25
24
|
end
|
26
25
|
|
27
26
|
def test_should_not_stub_everything_by_default
|
@@ -45,10 +44,24 @@ class MockTest < Mocha::TestCase
|
|
45
44
|
assert_equal true, mock.eql?(mock)
|
46
45
|
end
|
47
46
|
|
48
|
-
|
49
|
-
|
50
|
-
|
51
|
-
|
47
|
+
EXCLUDED_METHODS = {
|
48
|
+
true => %w[
|
49
|
+
method_missing
|
50
|
+
singleton_method_undefined
|
51
|
+
initialize
|
52
|
+
],
|
53
|
+
false => [
|
54
|
+
:object_id,
|
55
|
+
:method_missing,
|
56
|
+
:singleton_method_undefined,
|
57
|
+
:initialize,
|
58
|
+
:String,
|
59
|
+
:singleton_method_added
|
60
|
+
]
|
61
|
+
}.freeze
|
62
|
+
|
63
|
+
OBJECT_METHODS = STANDARD_OBJECT_PUBLIC_INSTANCE_METHODS.reject do |m|
|
64
|
+
m =~ /^__.*__$/ || EXCLUDED_METHODS[PRE_RUBY_V19].include?(m)
|
52
65
|
end
|
53
66
|
|
54
67
|
def test_should_be_able_to_mock_standard_object_methods
|
@@ -149,7 +162,7 @@ class MockTest < Mocha::TestCase
|
|
149
162
|
parameters_for_yield = [1, 2, 3]
|
150
163
|
mock.expects(:method1).yields(*parameters_for_yield)
|
151
164
|
yielded_parameters = nil
|
152
|
-
mock.method1
|
165
|
+
mock.method1 { |*parameters| yielded_parameters = parameters }
|
153
166
|
assert_equal parameters_for_yield, yielded_parameters
|
154
167
|
end
|
155
168
|
|
@@ -228,7 +241,7 @@ class MockTest < Mocha::TestCase
|
|
228
241
|
|
229
242
|
def test_should_respond_to_methods_which_the_responder_does_responds_to
|
230
243
|
instance = Class.new do
|
231
|
-
define_method(:respond_to?) { |
|
244
|
+
define_method(:respond_to?) { |_symbol| true }
|
232
245
|
end.new
|
233
246
|
mock = build_mock
|
234
247
|
mock.responds_like(instance)
|
@@ -237,7 +250,7 @@ class MockTest < Mocha::TestCase
|
|
237
250
|
|
238
251
|
def test_should_not_respond_to_methods_which_the_responder_does_not_responds_to
|
239
252
|
instance = Class.new do
|
240
|
-
define_method(:respond_to?) { |
|
253
|
+
define_method(:respond_to?) { |_symbol| false }
|
241
254
|
end.new
|
242
255
|
mock = build_mock
|
243
256
|
mock.responds_like(instance)
|
@@ -246,7 +259,7 @@ class MockTest < Mocha::TestCase
|
|
246
259
|
|
247
260
|
def test_should_respond_to_methods_which_the_responder_instance_does_responds_to
|
248
261
|
klass = Class.new do
|
249
|
-
define_method(:respond_to?) { |
|
262
|
+
define_method(:respond_to?) { |_symbol| true }
|
250
263
|
end
|
251
264
|
mock = build_mock
|
252
265
|
mock.responds_like_instance_of(klass)
|
@@ -255,7 +268,7 @@ class MockTest < Mocha::TestCase
|
|
255
268
|
|
256
269
|
def test_should_not_respond_to_methods_which_the_responder_instance_does_not_responds_to
|
257
270
|
klass = Class.new do
|
258
|
-
define_method(:respond_to?) { |
|
271
|
+
define_method(:respond_to?) { |_symbol| false }
|
259
272
|
end
|
260
273
|
mock = build_mock
|
261
274
|
mock.responds_like_instance_of(klass)
|
@@ -280,7 +293,7 @@ class MockTest < Mocha::TestCase
|
|
280
293
|
|
281
294
|
def test_should_not_raise_no_method_error_if_responder_does_respond_to_invoked_method
|
282
295
|
instance = Class.new do
|
283
|
-
define_method(:respond_to?) { |
|
296
|
+
define_method(:respond_to?) { |_symbol| true }
|
284
297
|
end.new
|
285
298
|
mock = build_mock
|
286
299
|
mock.responds_like(instance)
|
@@ -290,7 +303,7 @@ class MockTest < Mocha::TestCase
|
|
290
303
|
|
291
304
|
def test_should_raise_no_method_error_if_responder_does_not_respond_to_invoked_method
|
292
305
|
instance = Class.new do
|
293
|
-
define_method(:respond_to?) { |
|
306
|
+
define_method(:respond_to?) { |_symbol| false }
|
294
307
|
define_method(:mocha_inspect) { 'mocha_inspect' }
|
295
308
|
end.new
|
296
309
|
mock = build_mock
|
@@ -301,7 +314,7 @@ class MockTest < Mocha::TestCase
|
|
301
314
|
|
302
315
|
def test_should_raise_no_method_error_with_message_indicating_that_mock_is_constrained_to_respond_like_responder
|
303
316
|
instance = Class.new do
|
304
|
-
define_method(:respond_to?) { |
|
317
|
+
define_method(:respond_to?) { |_symbol| false }
|
305
318
|
define_method(:mocha_inspect) { 'mocha_inspect' }
|
306
319
|
end.new
|
307
320
|
mock = build_mock
|
data/test/unit/mockery_test.rb
CHANGED
@@ -5,7 +5,6 @@ require 'mocha/expectation_error_factory'
|
|
5
5
|
require 'deprecation_disabler'
|
6
6
|
|
7
7
|
class MockeryTest < Mocha::TestCase
|
8
|
-
|
9
8
|
include Mocha
|
10
9
|
include DeprecationDisabler
|
11
10
|
|
@@ -31,25 +30,25 @@ class MockeryTest < Mocha::TestCase
|
|
31
30
|
end
|
32
31
|
|
33
32
|
def test_should_cache_instance_of_mockery
|
34
|
-
|
35
|
-
|
36
|
-
assert_same
|
33
|
+
mockery1 = Mockery.instance
|
34
|
+
mockery2 = Mockery.instance
|
35
|
+
assert_same mockery1, mockery2
|
37
36
|
end
|
38
37
|
|
39
38
|
def test_should_expire_mockery_instance_cache
|
40
|
-
|
39
|
+
mockery1 = Mockery.instance
|
41
40
|
Mockery.teardown
|
42
|
-
|
43
|
-
assert_not_same
|
41
|
+
mockery2 = Mockery.instance
|
42
|
+
assert_not_same mockery1, mockery2
|
44
43
|
end
|
45
44
|
|
46
45
|
def test_should_raise_expectation_error_because_not_all_expectations_are_satisfied
|
47
46
|
mockery = Mockery.new
|
48
47
|
disable_deprecations do
|
49
|
-
|
50
|
-
|
51
|
-
1.times {
|
52
|
-
0.times {
|
48
|
+
mock1 = mockery.named_mock('mock-1') { expects(:method_1) }
|
49
|
+
mock2 = mockery.named_mock('mock-2') { expects(:method_2) }
|
50
|
+
1.times { mock1.method_1 }
|
51
|
+
0.times { mock2.method_2 }
|
53
52
|
end
|
54
53
|
assert_raises(ExpectationErrorFactory.exception_class) { mockery.verify }
|
55
54
|
end
|
@@ -71,10 +70,10 @@ class MockeryTest < Mocha::TestCase
|
|
71
70
|
|
72
71
|
def test_should_build_new_instance_of_stubba_on_teardown
|
73
72
|
mockery = Mockery.new
|
74
|
-
|
73
|
+
stubba1 = mockery.stubba
|
75
74
|
mockery.teardown
|
76
|
-
|
77
|
-
assert_not_same
|
75
|
+
stubba2 = mockery.stubba
|
76
|
+
assert_not_same stubba1, stubba2
|
78
77
|
end
|
79
78
|
|
80
79
|
def test_should_build_and_store_new_state_machine
|
@@ -93,8 +92,12 @@ class MockeryTest < Mocha::TestCase
|
|
93
92
|
|
94
93
|
class FakeMethod
|
95
94
|
def stub; end
|
95
|
+
|
96
96
|
def unstub; end
|
97
|
-
|
97
|
+
|
98
|
+
def matches?(_other)
|
99
|
+
true
|
100
|
+
end
|
98
101
|
end
|
99
102
|
|
100
103
|
def test_should_unstub_all_methods_on_teardown
|
@@ -108,51 +111,51 @@ class MockeryTest < Mocha::TestCase
|
|
108
111
|
def test_should_display_object_id_for_mocha_inspect_if_mock_has_no_name
|
109
112
|
mockery = Mockery.new
|
110
113
|
mock = mockery.unnamed_mock
|
111
|
-
assert_match Regexp.new(
|
114
|
+
assert_match Regexp.new('^#<Mock:0x[0-9A-Fa-f]{1,12}>$'), mock.mocha_inspect
|
112
115
|
end
|
113
116
|
|
114
117
|
def test_should_display_object_id_for_inspect_if_mock_has_no_name
|
115
118
|
mockery = Mockery.new
|
116
119
|
mock = mockery.unnamed_mock
|
117
|
-
assert_match Regexp.new(
|
120
|
+
assert_match Regexp.new('^#<Mock:0x[0-9A-Fa-f]{1,12}>$'), mock.inspect
|
118
121
|
end
|
119
122
|
|
120
123
|
def test_should_display_name_for_mocha_inspect_if_mock_has_string_name
|
121
124
|
mockery = Mockery.new
|
122
125
|
mock = mockery.named_mock('named_mock')
|
123
|
-
assert_equal
|
126
|
+
assert_equal '#<Mock:named_mock>', mock.mocha_inspect
|
124
127
|
end
|
125
128
|
|
126
129
|
def test_should_display_name_for_mocha_inspect_if_mock_has_symbol_name
|
127
130
|
mockery = Mockery.new
|
128
131
|
mock = mockery.named_mock(:named_mock)
|
129
|
-
assert_equal
|
132
|
+
assert_equal '#<Mock:named_mock>', mock.mocha_inspect
|
130
133
|
end
|
131
134
|
|
132
135
|
def test_should_display_name_for_inspect_if_mock_has_string_name
|
133
136
|
mockery = Mockery.new
|
134
137
|
mock = mockery.named_mock('named_mock')
|
135
|
-
assert_equal
|
138
|
+
assert_equal '#<Mock:named_mock>', mock.inspect
|
136
139
|
end
|
137
140
|
|
138
141
|
def test_should_display_name_for_inspect_if_mock_has_symbol_name
|
139
142
|
mockery = Mockery.new
|
140
143
|
mock = mockery.named_mock(:named_mock)
|
141
|
-
assert_equal
|
144
|
+
assert_equal '#<Mock:named_mock>', mock.inspect
|
142
145
|
end
|
143
146
|
|
144
147
|
def test_should_display_impersonated_object_for_mocha_inspect
|
145
148
|
mockery = Mockery.new
|
146
149
|
instance = Object.new
|
147
150
|
mock = mockery.mock_impersonating(instance)
|
148
|
-
assert_equal
|
151
|
+
assert_equal instance.mocha_inspect.to_s, mock.mocha_inspect
|
149
152
|
end
|
150
153
|
|
151
154
|
def test_should_display_impersonated_object_for_inspect
|
152
155
|
mockery = Mockery.new
|
153
156
|
instance = Object.new
|
154
157
|
mock = mockery.mock_impersonating(instance)
|
155
|
-
assert_equal
|
158
|
+
assert_equal instance.mocha_inspect.to_s, mock.inspect
|
156
159
|
end
|
157
160
|
|
158
161
|
class FakeClass; end
|
@@ -160,13 +163,12 @@ class MockeryTest < Mocha::TestCase
|
|
160
163
|
def test_should_display_any_instance_prefix_followed_by_class_whose_instances_are_being_impersonated_for_mocha_inspect
|
161
164
|
mockery = Mockery.new
|
162
165
|
mock = mockery.mock_impersonating_any_instance_of(FakeClass)
|
163
|
-
assert_equal
|
166
|
+
assert_equal '#<AnyInstance:MockeryTest::FakeClass>', mock.mocha_inspect
|
164
167
|
end
|
165
168
|
|
166
169
|
def test_should_display_any_instance_prefix_followed_by_class_whose_instances_are_being_impersonated_for_inspect
|
167
170
|
mockery = Mockery.new
|
168
171
|
mock = mockery.mock_impersonating_any_instance_of(FakeClass)
|
169
|
-
assert_equal
|
172
|
+
assert_equal '#<AnyInstance:MockeryTest::FakeClass>', mock.inspect
|
170
173
|
end
|
171
|
-
|
172
174
|
end
|
@@ -3,7 +3,6 @@ require 'mocha/module_methods'
|
|
3
3
|
require 'mocha/object_methods'
|
4
4
|
|
5
5
|
class ModuleMethodsTest < Mocha::TestCase
|
6
|
-
|
7
6
|
def setup
|
8
7
|
@module = Module.new.extend(Mocha::ModuleMethods, Mocha::ObjectMethods)
|
9
8
|
end
|
@@ -15,5 +14,4 @@ class ModuleMethodsTest < Mocha::TestCase
|
|
15
14
|
def test_should_stub_self_for_module
|
16
15
|
assert_equal @module, @module.stubba_object
|
17
16
|
end
|
18
|
-
|
19
17
|
end
|
@@ -3,7 +3,6 @@ require File.expand_path('../../test_helper', __FILE__)
|
|
3
3
|
require 'mocha/multiple_yields'
|
4
4
|
|
5
5
|
class MultipleYieldsTest < Mocha::TestCase
|
6
|
-
|
7
6
|
include Mocha
|
8
7
|
|
9
8
|
def test_should_provide_parameters_for_multiple_yields_in_single_invocation
|
@@ -14,5 +13,4 @@ class MultipleYieldsTest < Mocha::TestCase
|
|
14
13
|
end
|
15
14
|
assert_equal [[1, 2, 3], [4, 5]], parameter_groups
|
16
15
|
end
|
17
|
-
|
18
16
|
end
|
data/test/unit/no_yields_test.rb
CHANGED
@@ -3,7 +3,6 @@ require File.expand_path('../../test_helper', __FILE__)
|
|
3
3
|
require 'mocha/no_yields'
|
4
4
|
|
5
5
|
class NoYieldsTest < Mocha::TestCase
|
6
|
-
|
7
6
|
include Mocha
|
8
7
|
|
9
8
|
def test_should_provide_parameters_for_no_yields_in_single_invocation
|
@@ -14,5 +13,4 @@ class NoYieldsTest < Mocha::TestCase
|
|
14
13
|
end
|
15
14
|
assert_equal [], parameter_groups
|
16
15
|
end
|
17
|
-
|
18
16
|
end
|
@@ -4,14 +4,13 @@ require 'mocha/inspect'
|
|
4
4
|
require 'method_definer'
|
5
5
|
|
6
6
|
class ObjectInspectTest < Mocha::TestCase
|
7
|
-
|
8
7
|
def test_should_return_default_string_representation_of_object_not_including_instance_variables
|
9
8
|
object = Object.new
|
10
9
|
class << object
|
11
10
|
attr_accessor :attribute
|
12
11
|
end
|
13
12
|
object.attribute = 'instance_variable'
|
14
|
-
assert_match Regexp.new(
|
13
|
+
assert_match Regexp.new('^#<Object:0x[0-9A-Fa-f]{1,8}.*>$'), object.mocha_inspect
|
15
14
|
assert_no_match(/instance_variable/, object.mocha_inspect)
|
16
15
|
end
|
17
16
|
|
@@ -26,14 +25,24 @@ class ObjectInspectTest < Mocha::TestCase
|
|
26
25
|
def test_should_use_underscored_id_instead_of_object_id_or_id_so_that_they_can_be_stubbed
|
27
26
|
calls = []
|
28
27
|
object = Object.new
|
29
|
-
|
30
|
-
|
31
|
-
|
32
|
-
|
28
|
+
if Mocha::PRE_RUBY_V19
|
29
|
+
object.replace_instance_method(:id) do
|
30
|
+
calls << :id
|
31
|
+
return 1
|
32
|
+
end
|
33
|
+
end
|
34
|
+
object.replace_instance_method(:object_id) do
|
35
|
+
calls << :object_id
|
36
|
+
return 1
|
37
|
+
end
|
38
|
+
object.replace_instance_method(:__id__) do
|
39
|
+
calls << :__id__
|
40
|
+
return 1
|
41
|
+
end
|
42
|
+
object.replace_instance_method(:inspect) { 'object-description' }
|
33
43
|
|
34
44
|
object.mocha_inspect
|
35
45
|
|
36
46
|
assert_equal [:__id__], calls.uniq
|
37
47
|
end
|
38
|
-
|
39
48
|
end
|