mocha 1.11.2 → 1.12.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 +4 -4
- data/CONTRIBUTING.md +1 -1
- data/README.md +28 -30
- data/RELEASE.md +25 -0
- data/Rakefile +6 -1
- data/lib/mocha/cardinality.rb +30 -27
- data/lib/mocha/expectation.rb +24 -24
- data/lib/mocha/mock.rb +1 -1
- data/lib/mocha/mockery.rb +9 -22
- data/lib/mocha/state_machine.rb +30 -38
- data/lib/mocha/version.rb +1 -1
- data/mocha.gemspec +3 -1
- metadata +5 -192
- data/docs/CNAME +0 -1
- data/docs/Mocha.html +0 -254
- data/docs/Mocha/API.html +0 -1285
- data/docs/Mocha/ClassMethods.html +0 -264
- data/docs/Mocha/Configuration.html +0 -1525
- data/docs/Mocha/Expectation.html +0 -2862
- data/docs/Mocha/ExpectationError.html +0 -152
- data/docs/Mocha/ExpectationErrorFactory.html +0 -260
- data/docs/Mocha/Hooks.html +0 -370
- data/docs/Mocha/Integration.html +0 -125
- data/docs/Mocha/Integration/MiniTest.html +0 -123
- data/docs/Mocha/Integration/MiniTest/Adapter.html +0 -164
- data/docs/Mocha/Integration/TestUnit.html +0 -123
- data/docs/Mocha/Integration/TestUnit/Adapter.html +0 -164
- data/docs/Mocha/Mock.html +0 -1210
- data/docs/Mocha/ObjectMethods.html +0 -765
- data/docs/Mocha/ParameterMatchers.html +0 -2949
- data/docs/Mocha/ParameterMatchers/AllOf.html +0 -153
- data/docs/Mocha/ParameterMatchers/AnyOf.html +0 -153
- data/docs/Mocha/ParameterMatchers/AnyParameters.html +0 -153
- data/docs/Mocha/ParameterMatchers/Anything.html +0 -153
- data/docs/Mocha/ParameterMatchers/Base.html +0 -441
- data/docs/Mocha/ParameterMatchers/Equals.html +0 -153
- data/docs/Mocha/ParameterMatchers/EquivalentUri.html +0 -153
- data/docs/Mocha/ParameterMatchers/HasEntries.html +0 -153
- data/docs/Mocha/ParameterMatchers/HasEntry.html +0 -153
- data/docs/Mocha/ParameterMatchers/HasKey.html +0 -153
- data/docs/Mocha/ParameterMatchers/HasValue.html +0 -153
- data/docs/Mocha/ParameterMatchers/Includes.html +0 -153
- data/docs/Mocha/ParameterMatchers/InstanceOf.html +0 -153
- data/docs/Mocha/ParameterMatchers/IsA.html +0 -153
- data/docs/Mocha/ParameterMatchers/KindOf.html +0 -153
- data/docs/Mocha/ParameterMatchers/Not.html +0 -153
- data/docs/Mocha/ParameterMatchers/Optionally.html +0 -153
- data/docs/Mocha/ParameterMatchers/RegexpMatches.html +0 -153
- data/docs/Mocha/ParameterMatchers/RespondsWith.html +0 -153
- data/docs/Mocha/ParameterMatchers/YamlEquivalent.html +0 -153
- data/docs/Mocha/Sequence.html +0 -149
- data/docs/Mocha/StateMachine.html +0 -527
- data/docs/Mocha/StateMachine/State.html +0 -140
- data/docs/Mocha/StateMachine/StatePredicate.html +0 -140
- data/docs/Mocha/StubbingError.html +0 -150
- data/docs/_index.html +0 -519
- data/docs/class_list.html +0 -51
- data/docs/css/common.css +0 -1
- data/docs/css/full_list.css +0 -58
- data/docs/css/style.css +0 -496
- data/docs/file.COPYING.html +0 -81
- data/docs/file.MIT-LICENSE.html +0 -85
- data/docs/file.README.html +0 -448
- data/docs/file.RELEASE.html +0 -1028
- data/docs/file_list.html +0 -71
- data/docs/frames.html +0 -17
- data/docs/index.html +0 -448
- data/docs/js/app.js +0 -303
- data/docs/js/full_list.js +0 -216
- data/docs/js/jquery.js +0 -4
- data/docs/method_list.html +0 -651
- data/docs/top-level-namespace.html +0 -118
- data/test/acceptance/acceptance_test_helper.rb +0 -42
- data/test/acceptance/bug_18914_test.rb +0 -37
- data/test/acceptance/bug_21465_test.rb +0 -31
- data/test/acceptance/bug_21563_test.rb +0 -22
- data/test/acceptance/display_matching_invocations_alongside_expectations_test.rb +0 -69
- data/test/acceptance/exception_rescue_test.rb +0 -53
- data/test/acceptance/expectations_on_multiple_methods_test.rb +0 -55
- data/test/acceptance/expected_invocation_count_test.rb +0 -229
- data/test/acceptance/failure_messages_test.rb +0 -77
- data/test/acceptance/issue_272_test.rb +0 -50
- data/test/acceptance/issue_457_test.rb +0 -31
- data/test/acceptance/issue_65_test.rb +0 -64
- data/test/acceptance/issue_70_test.rb +0 -53
- data/test/acceptance/mocha_example_test.rb +0 -106
- data/test/acceptance/mocha_test_result_test.rb +0 -83
- data/test/acceptance/mock_built_with_first_argument_type_being_string_test.rb +0 -98
- data/test/acceptance/mock_test.rb +0 -191
- data/test/acceptance/mocked_methods_dispatch_test.rb +0 -75
- data/test/acceptance/multiple_expectations_failure_message_test.rb +0 -66
- data/test/acceptance/multiple_yielding_test.rb +0 -59
- data/test/acceptance/optional_parameters_test.rb +0 -67
- data/test/acceptance/parameter_matcher_test.rb +0 -299
- data/test/acceptance/partial_mocks_test.rb +0 -44
- data/test/acceptance/prepend_test.rb +0 -86
- data/test/acceptance/prevent_use_of_mocha_outside_test_test.rb +0 -76
- data/test/acceptance/raise_exception_test.rb +0 -36
- data/test/acceptance/return_value_test.rb +0 -49
- data/test/acceptance/sequence_test.rb +0 -189
- data/test/acceptance/states_test.rb +0 -71
- data/test/acceptance/stub_any_instance_method_defined_on_superclass_test.rb +0 -64
- data/test/acceptance/stub_any_instance_method_test.rb +0 -301
- data/test/acceptance/stub_class_method_defined_on_active_record_association_proxy_test.rb +0 -105
- 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 -73
- data/test/acceptance/stub_class_method_defined_on_superclass_test.rb +0 -144
- data/test/acceptance/stub_everything_test.rb +0 -53
- data/test/acceptance/stub_instance_method_defined_on_active_record_association_proxy_test.rb +0 -91
- data/test/acceptance/stub_instance_method_defined_on_class_and_aliased_test.rb +0 -67
- data/test/acceptance/stub_instance_method_defined_on_class_test.rb +0 -67
- data/test/acceptance/stub_instance_method_defined_on_kernel_module_test.rb +0 -136
- data/test/acceptance/stub_instance_method_defined_on_module_test.rb +0 -76
- 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 -67
- data/test/acceptance/stub_instance_method_defined_on_superclass_test.rb +0 -70
- data/test/acceptance/stub_method_defined_on_module_and_aliased_test.rb +0 -38
- data/test/acceptance/stub_module_method_test.rb +0 -200
- data/test/acceptance/stub_test.rb +0 -49
- data/test/acceptance/stubba_example_test.rb +0 -103
- data/test/acceptance/stubba_test_result_test.rb +0 -71
- data/test/acceptance/stubbing_error_backtrace_test.rb +0 -63
- data/test/acceptance/stubbing_frozen_object_test.rb +0 -88
- data/test/acceptance/stubbing_method_accepting_block_parameter_test.rb +0 -52
- data/test/acceptance/stubbing_method_unnecessarily_test.rb +0 -63
- data/test/acceptance/stubbing_nil_test.rb +0 -60
- data/test/acceptance/stubbing_non_existent_any_instance_method_test.rb +0 -157
- data/test/acceptance/stubbing_non_existent_class_method_test.rb +0 -157
- data/test/acceptance/stubbing_non_existent_instance_method_test.rb +0 -145
- data/test/acceptance/stubbing_non_public_any_instance_method_test.rb +0 -128
- data/test/acceptance/stubbing_non_public_class_method_test.rb +0 -163
- data/test/acceptance/stubbing_non_public_instance_method_test.rb +0 -141
- data/test/acceptance/stubbing_on_non_mock_object_test.rb +0 -70
- data/test/acceptance/stubbing_same_class_method_on_parent_and_child_classes_test.rb +0 -33
- data/test/acceptance/throw_test.rb +0 -42
- data/test/acceptance/unexpected_invocation_test.rb +0 -23
- data/test/acceptance/unstubbing_test.rb +0 -194
- data/test/acceptance/yielding_test.rb +0 -80
- data/test/assertions.rb +0 -8
- 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 -178
- data/test/integration/test_unit_test.rb +0 -8
- data/test/method_definer.rb +0 -16
- data/test/mini_test_result.rb +0 -96
- data/test/minitest_result.rb +0 -48
- data/test/simple_counter.rb +0 -11
- data/test/test_helper.rb +0 -58
- data/test/test_runner.rb +0 -58
- data/test/test_unit_result.rb +0 -22
- data/test/unit/any_instance_method_test.rb +0 -175
- data/test/unit/array_inspect_test.rb +0 -14
- data/test/unit/backtrace_filter_test.rb +0 -17
- data/test/unit/cardinality_test.rb +0 -72
- data/test/unit/central_test.rb +0 -98
- data/test/unit/change_state_side_effect_test.rb +0 -37
- data/test/unit/class_methods_test.rb +0 -69
- data/test/unit/configuration_test.rb +0 -37
- data/test/unit/date_time_inspect_test.rb +0 -19
- data/test/unit/exception_raiser_test.rb +0 -45
- data/test/unit/expectation_list_test.rb +0 -82
- data/test/unit/expectation_test.rb +0 -504
- data/test/unit/hash_inspect_test.rb +0 -14
- data/test/unit/hooks_test.rb +0 -35
- data/test/unit/in_state_ordering_constraint_test.rb +0 -39
- data/test/unit/instance_method_test.rb +0 -282
- data/test/unit/method_matcher_test.rb +0 -26
- data/test/unit/mock_test.rb +0 -372
- data/test/unit/mockery_test.rb +0 -171
- data/test/unit/module_methods_test.rb +0 -16
- data/test/unit/object_inspect_test.rb +0 -60
- data/test/unit/object_methods_test.rb +0 -63
- data/test/unit/parameter_matchers/all_of_test.rb +0 -24
- data/test/unit/parameter_matchers/any_of_test.rb +0 -24
- data/test/unit/parameter_matchers/anything_test.rb +0 -19
- data/test/unit/parameter_matchers/equals_test.rb +0 -23
- data/test/unit/parameter_matchers/equivalent_uri_test.rb +0 -41
- data/test/unit/parameter_matchers/has_entries_test.rb +0 -51
- data/test/unit/parameter_matchers/has_entry_test.rb +0 -128
- data/test/unit/parameter_matchers/has_key_test.rb +0 -54
- data/test/unit/parameter_matchers/has_value_test.rb +0 -55
- data/test/unit/parameter_matchers/includes_test.rb +0 -106
- data/test/unit/parameter_matchers/instance_of_test.rb +0 -23
- data/test/unit/parameter_matchers/is_a_test.rb +0 -23
- data/test/unit/parameter_matchers/kind_of_test.rb +0 -23
- data/test/unit/parameter_matchers/not_test.rb +0 -24
- data/test/unit/parameter_matchers/regexp_matches_test.rb +0 -45
- data/test/unit/parameter_matchers/responds_with_test.rb +0 -38
- data/test/unit/parameter_matchers/stub_matcher.rb +0 -23
- data/test/unit/parameter_matchers/yaml_equivalent_test.rb +0 -23
- data/test/unit/parameters_matcher_test.rb +0 -119
- data/test/unit/receivers_test.rb +0 -96
- data/test/unit/return_values_test.rb +0 -66
- data/test/unit/sequence_test.rb +0 -100
- data/test/unit/single_return_value_test.rb +0 -17
- data/test/unit/state_machine_test.rb +0 -96
- data/test/unit/string_inspect_test.rb +0 -9
- data/test/unit/thrower_test.rb +0 -23
- data/test/unit/yield_parameters_test.rb +0 -73
@@ -1,70 +0,0 @@
|
|
1
|
-
require File.expand_path('../acceptance_test_helper', __FILE__)
|
2
|
-
require 'mocha/configuration'
|
3
|
-
|
4
|
-
class StubbingOnNonMockObjectTest < Mocha::TestCase
|
5
|
-
include AcceptanceTest
|
6
|
-
|
7
|
-
def setup
|
8
|
-
setup_acceptance_test
|
9
|
-
end
|
10
|
-
|
11
|
-
def teardown
|
12
|
-
teardown_acceptance_test
|
13
|
-
end
|
14
|
-
|
15
|
-
def test_should_allow_stubbing_method_on_non_mock_object
|
16
|
-
Mocha.configure { |c| c.stubbing_method_on_non_mock_object = :allow }
|
17
|
-
non_mock_object = Class.new do
|
18
|
-
def existing_method; end
|
19
|
-
end
|
20
|
-
test_result = run_as_test do
|
21
|
-
non_mock_object.stubs(:existing_method)
|
22
|
-
end
|
23
|
-
assert_passed(test_result)
|
24
|
-
assert !@logger.warnings.include?("stubbing method on non-mock object: #{non_mock_object.mocha_inspect}.existing_method")
|
25
|
-
end
|
26
|
-
|
27
|
-
def test_should_warn_on_stubbing_method_on_non_mock_object
|
28
|
-
Mocha.configure { |c| c.stubbing_method_on_non_mock_object = :warn }
|
29
|
-
non_mock_object = Class.new do
|
30
|
-
def existing_method; end
|
31
|
-
end
|
32
|
-
test_result = run_as_test do
|
33
|
-
non_mock_object.stubs(:existing_method)
|
34
|
-
end
|
35
|
-
assert_passed(test_result)
|
36
|
-
assert @logger.warnings.include?("stubbing method on non-mock object: #{non_mock_object.mocha_inspect}.existing_method")
|
37
|
-
end
|
38
|
-
|
39
|
-
def test_should_prevent_stubbing_method_on_non_mock_object
|
40
|
-
Mocha.configure { |c| c.stubbing_method_on_non_mock_object = :prevent }
|
41
|
-
non_mock_object = Class.new do
|
42
|
-
def existing_method; end
|
43
|
-
end
|
44
|
-
test_result = run_as_test do
|
45
|
-
non_mock_object.stubs(:existing_method)
|
46
|
-
end
|
47
|
-
assert_failed(test_result)
|
48
|
-
assert test_result.error_messages.include?("Mocha::StubbingError: stubbing method on non-mock object: #{non_mock_object.mocha_inspect}.existing_method")
|
49
|
-
end
|
50
|
-
|
51
|
-
def test_should_default_to_allow_stubbing_method_on_non_mock_object
|
52
|
-
non_mock_object = Class.new do
|
53
|
-
def existing_method; end
|
54
|
-
end
|
55
|
-
test_result = run_as_test do
|
56
|
-
non_mock_object.stubs(:existing_method)
|
57
|
-
end
|
58
|
-
assert_passed(test_result)
|
59
|
-
assert !@logger.warnings.include?("stubbing method on non-mock object: #{non_mock_object.mocha_inspect}.existing_method")
|
60
|
-
end
|
61
|
-
|
62
|
-
def test_should_allow_stubbing_method_on_mock_object
|
63
|
-
Mocha.configure { |c| c.stubbing_method_on_non_mock_object = :prevent }
|
64
|
-
test_result = run_as_test do
|
65
|
-
mock = mock('mock')
|
66
|
-
mock.stubs(:any_method)
|
67
|
-
end
|
68
|
-
assert_passed(test_result)
|
69
|
-
end
|
70
|
-
end
|
@@ -1,33 +0,0 @@
|
|
1
|
-
require File.expand_path('../acceptance_test_helper', __FILE__)
|
2
|
-
|
3
|
-
class StubbingSameClassMethodOnParentAndChildClassTest < Mocha::TestCase
|
4
|
-
include AcceptanceTest
|
5
|
-
|
6
|
-
def setup
|
7
|
-
setup_acceptance_test
|
8
|
-
end
|
9
|
-
|
10
|
-
def teardown
|
11
|
-
teardown_acceptance_test
|
12
|
-
end
|
13
|
-
|
14
|
-
def test_stubbing_same_method_on_parent_and_child_classes
|
15
|
-
parent_class = Class.new do
|
16
|
-
def self.foo
|
17
|
-
'Parent.foo'
|
18
|
-
end
|
19
|
-
end
|
20
|
-
child_class = Class.new(parent_class)
|
21
|
-
test_result = run_as_tests(
|
22
|
-
:test_1 => lambda {
|
23
|
-
parent_class.stubs(:foo).returns('stubbed Parent.foo')
|
24
|
-
child_class.stubs(:foo).returns('stubbed Child.foo')
|
25
|
-
},
|
26
|
-
:test_2 => lambda {
|
27
|
-
parent_class.foo
|
28
|
-
child_class.foo
|
29
|
-
}
|
30
|
-
)
|
31
|
-
assert_passed(test_result)
|
32
|
-
end
|
33
|
-
end
|
@@ -1,42 +0,0 @@
|
|
1
|
-
require File.expand_path('../acceptance_test_helper', __FILE__)
|
2
|
-
|
3
|
-
class ThrowTest < Mocha::TestCase
|
4
|
-
include AcceptanceTest
|
5
|
-
|
6
|
-
def setup
|
7
|
-
setup_acceptance_test
|
8
|
-
end
|
9
|
-
|
10
|
-
def teardown
|
11
|
-
teardown_acceptance_test
|
12
|
-
end
|
13
|
-
|
14
|
-
def test_should_throw_tag
|
15
|
-
test_result = run_as_test do
|
16
|
-
foo = stub('foo')
|
17
|
-
foo.stubs(:bar).throws(:tag)
|
18
|
-
assert_throws(:tag) { foo.bar }
|
19
|
-
end
|
20
|
-
assert_passed(test_result)
|
21
|
-
end
|
22
|
-
|
23
|
-
def test_should_throw_with_return_value
|
24
|
-
test_result = run_as_test do
|
25
|
-
foo = stub('foo')
|
26
|
-
foo.stubs(:bar).throws(:tag, 'return-value')
|
27
|
-
return_value = catch(:tag) { foo.bar }
|
28
|
-
assert_equal 'return-value', return_value
|
29
|
-
end
|
30
|
-
assert_passed(test_result)
|
31
|
-
end
|
32
|
-
|
33
|
-
def test_should_throw_two_different_tags
|
34
|
-
test_result = run_as_test do
|
35
|
-
foo = stub('foo')
|
36
|
-
foo.stubs(:bar).throws(:tag_one).then.throws(:tag_two)
|
37
|
-
assert_throws(:tag_one) { foo.bar }
|
38
|
-
assert_throws(:tag_two) { foo.bar }
|
39
|
-
end
|
40
|
-
assert_passed(test_result)
|
41
|
-
end
|
42
|
-
end
|
@@ -1,23 +0,0 @@
|
|
1
|
-
require File.expand_path('../acceptance_test_helper', __FILE__)
|
2
|
-
|
3
|
-
class UnexpectedInvocationTest < Mocha::TestCase
|
4
|
-
include AcceptanceTest
|
5
|
-
|
6
|
-
def setup
|
7
|
-
setup_acceptance_test
|
8
|
-
end
|
9
|
-
|
10
|
-
def teardown
|
11
|
-
teardown_acceptance_test
|
12
|
-
end
|
13
|
-
|
14
|
-
def test_avoid_recursion_when_unexpected_invocation_exception_message_depends_on_uninspectable_object
|
15
|
-
test_result = run_as_test do
|
16
|
-
instance = Class.new.new
|
17
|
-
instance.expects(:inspect).never
|
18
|
-
instance.inspect(1, 2, 'foo')
|
19
|
-
end
|
20
|
-
assert_failed(test_result)
|
21
|
-
assert_equal 'unexpected invocation: inspect(1, 2, foo)', test_result.failure_message_lines[0]
|
22
|
-
end
|
23
|
-
end
|
@@ -1,194 +0,0 @@
|
|
1
|
-
require File.expand_path('../acceptance_test_helper', __FILE__)
|
2
|
-
|
3
|
-
class UnstubbingTest < Mocha::TestCase
|
4
|
-
include AcceptanceTest
|
5
|
-
|
6
|
-
def setup
|
7
|
-
setup_acceptance_test
|
8
|
-
end
|
9
|
-
|
10
|
-
def teardown
|
11
|
-
teardown_acceptance_test
|
12
|
-
end
|
13
|
-
|
14
|
-
def test_unstubbing_an_instance_method_should_restore_original_behaviour
|
15
|
-
klass = Class.new do
|
16
|
-
def my_instance_method
|
17
|
-
:original_return_value
|
18
|
-
end
|
19
|
-
end
|
20
|
-
test_result = run_as_test do
|
21
|
-
object = klass.new
|
22
|
-
object.stubs(:my_instance_method).returns(:new_return_value)
|
23
|
-
object.unstub(:my_instance_method)
|
24
|
-
assert_equal :original_return_value, object.my_instance_method
|
25
|
-
end
|
26
|
-
assert_passed(test_result)
|
27
|
-
end
|
28
|
-
|
29
|
-
def test_unstubbing_a_class_method_should_restore_original_behaviour
|
30
|
-
klass = Class.new do
|
31
|
-
def self.my_class_method
|
32
|
-
:original_return_value
|
33
|
-
end
|
34
|
-
end
|
35
|
-
test_result = run_as_test do
|
36
|
-
klass.stubs(:my_class_method).returns(:new_return_value)
|
37
|
-
klass.unstub(:my_class_method)
|
38
|
-
assert_equal :original_return_value, klass.my_class_method
|
39
|
-
end
|
40
|
-
assert_passed(test_result)
|
41
|
-
end
|
42
|
-
|
43
|
-
def test_unstubbing_a_module_method_should_restore_original_behaviour
|
44
|
-
mod = Module.new do
|
45
|
-
def self.my_module_method
|
46
|
-
:original_return_value
|
47
|
-
end
|
48
|
-
end
|
49
|
-
test_result = run_as_test do
|
50
|
-
mod.stubs(:my_module_method).returns(:new_return_value)
|
51
|
-
mod.unstub(:my_module_method)
|
52
|
-
assert_equal :original_return_value, mod.my_module_method
|
53
|
-
end
|
54
|
-
assert_passed(test_result)
|
55
|
-
end
|
56
|
-
|
57
|
-
def test_unstubbing_a_module_method_defined_like_fileutils_in_ruby_2_0_should_restore_original_behaviour
|
58
|
-
mod = Module.new do
|
59
|
-
def my_module_method
|
60
|
-
:original_return_value
|
61
|
-
end
|
62
|
-
private :my_module_method
|
63
|
-
extend self
|
64
|
-
class << self
|
65
|
-
public :my_module_method
|
66
|
-
end
|
67
|
-
end
|
68
|
-
test_result = run_as_test do
|
69
|
-
mod.stubs(:my_module_method).returns(:new_return_value)
|
70
|
-
mod.unstub(:my_module_method)
|
71
|
-
assert_equal :original_return_value, mod.my_module_method
|
72
|
-
end
|
73
|
-
assert_passed(test_result)
|
74
|
-
end
|
75
|
-
|
76
|
-
def test_unstubbing_an_any_instance_method_should_restore_original_behaviour
|
77
|
-
klass = Class.new do
|
78
|
-
def my_instance_method
|
79
|
-
:original_return_value
|
80
|
-
end
|
81
|
-
end
|
82
|
-
test_result = run_as_test do
|
83
|
-
object = klass.new
|
84
|
-
klass.any_instance.stubs(:my_instance_method).returns(:new_return_value)
|
85
|
-
klass.any_instance.unstub(:my_instance_method)
|
86
|
-
assert_equal :original_return_value, object.my_instance_method
|
87
|
-
end
|
88
|
-
assert_passed(test_result)
|
89
|
-
end
|
90
|
-
|
91
|
-
def test_unstubbing_multiple_methods_should_restore_original_behaviour
|
92
|
-
klass = Class.new do
|
93
|
-
def my_first_instance_method
|
94
|
-
:original_return_value
|
95
|
-
end
|
96
|
-
|
97
|
-
def my_second_instance_method
|
98
|
-
:original_return_value
|
99
|
-
end
|
100
|
-
end
|
101
|
-
test_result = run_as_test do
|
102
|
-
object = klass.new
|
103
|
-
object.stubs(:my_first_instance_method).returns(:new_return_value)
|
104
|
-
object.stubs(:my_second_instance_method).returns(:new_return_value)
|
105
|
-
object.unstub(:my_first_instance_method, :my_second_instance_method)
|
106
|
-
assert_equal :original_return_value, object.my_first_instance_method
|
107
|
-
assert_equal :original_return_value, object.my_second_instance_method
|
108
|
-
end
|
109
|
-
assert_passed(test_result)
|
110
|
-
end
|
111
|
-
|
112
|
-
def test_unstubbing_a_method_multiple_times_should_restore_original_behaviour
|
113
|
-
klass = Class.new do
|
114
|
-
def my_instance_method
|
115
|
-
:original_return_value
|
116
|
-
end
|
117
|
-
end
|
118
|
-
test_result = run_as_test do
|
119
|
-
object = klass.new
|
120
|
-
object.stubs(:my_instance_method).returns(:new_return_value)
|
121
|
-
object.unstub(:my_instance_method)
|
122
|
-
object.unstub(:my_instance_method)
|
123
|
-
assert_equal :original_return_value, object.my_instance_method
|
124
|
-
end
|
125
|
-
assert_passed(test_result)
|
126
|
-
end
|
127
|
-
|
128
|
-
def test_unstubbing_a_non_stubbed_method_should_do_nothing
|
129
|
-
klass = Class.new do
|
130
|
-
def my_instance_method
|
131
|
-
:original_return_value
|
132
|
-
end
|
133
|
-
end
|
134
|
-
test_result = run_as_test do
|
135
|
-
object = klass.new
|
136
|
-
object.unstub(:my_instance_method)
|
137
|
-
assert_equal :original_return_value, object.my_instance_method
|
138
|
-
end
|
139
|
-
assert_passed(test_result)
|
140
|
-
end
|
141
|
-
|
142
|
-
def test_unstubbing_a_method_which_was_stubbed_multiple_times_should_restore_orginal_behaviour
|
143
|
-
klass = Class.new do
|
144
|
-
def my_instance_method
|
145
|
-
:original_return_value
|
146
|
-
end
|
147
|
-
end
|
148
|
-
test_result = run_as_test do
|
149
|
-
object = klass.new
|
150
|
-
object.stubs(:my_instance_method).with(:first).returns(:first_new_return_value)
|
151
|
-
object.stubs(:my_instance_method).with(:second).returns(:second_new_return_value)
|
152
|
-
object.unstub(:my_instance_method)
|
153
|
-
assert_equal :original_return_value, object.my_instance_method
|
154
|
-
end
|
155
|
-
assert_passed(test_result)
|
156
|
-
end
|
157
|
-
|
158
|
-
def test_unstubbing_a_method_should_not_unstub_other_stubbed_methods
|
159
|
-
klass = Class.new do
|
160
|
-
def my_first_instance_method
|
161
|
-
:first_return_value
|
162
|
-
end
|
163
|
-
|
164
|
-
def my_second_instance_method
|
165
|
-
:second_return_value
|
166
|
-
end
|
167
|
-
end
|
168
|
-
|
169
|
-
test_result = run_as_test do
|
170
|
-
object = klass.new
|
171
|
-
object.stubs(:my_first_instance_method).returns(:first_new_return_value)
|
172
|
-
object.stubs(:my_second_instance_method).returns(:second_new_return_value)
|
173
|
-
object.unstub(:my_first_instance_method)
|
174
|
-
assert_equal :first_return_value, object.my_first_instance_method
|
175
|
-
assert_equal :second_new_return_value, object.my_second_instance_method
|
176
|
-
end
|
177
|
-
assert_passed(test_result)
|
178
|
-
end
|
179
|
-
|
180
|
-
def test_unstubbing_a_method_should_remove_all_expectations_for_that_method
|
181
|
-
klass = Class.new do
|
182
|
-
def my_instance_method
|
183
|
-
:original_return_value
|
184
|
-
end
|
185
|
-
end
|
186
|
-
test_result = run_as_test do
|
187
|
-
object = klass.new
|
188
|
-
object.expects(:my_instance_method).with(:first)
|
189
|
-
object.expects(:my_instance_method).with(:second)
|
190
|
-
object.unstub(:my_instance_method)
|
191
|
-
end
|
192
|
-
assert_passed(test_result)
|
193
|
-
end
|
194
|
-
end
|
@@ -1,80 +0,0 @@
|
|
1
|
-
require File.expand_path('../acceptance_test_helper', __FILE__)
|
2
|
-
|
3
|
-
class YieldingTest < Mocha::TestCase
|
4
|
-
include AcceptanceTest
|
5
|
-
|
6
|
-
def setup
|
7
|
-
setup_acceptance_test
|
8
|
-
end
|
9
|
-
|
10
|
-
def teardown
|
11
|
-
teardown_acceptance_test
|
12
|
-
end
|
13
|
-
|
14
|
-
def test_yields_when_stubbed_method_is_invoked
|
15
|
-
test_result = run_as_test do
|
16
|
-
m = mock('m')
|
17
|
-
m.stubs(:foo).yields
|
18
|
-
yielded = false
|
19
|
-
m.foo { yielded = true }
|
20
|
-
assert yielded
|
21
|
-
end
|
22
|
-
assert_passed(test_result)
|
23
|
-
end
|
24
|
-
|
25
|
-
def test_raises_local_jump_error_if_instructed_to_yield_but_no_block_given
|
26
|
-
test_result = run_as_test do
|
27
|
-
Mocha::Configuration.override(:reinstate_undocumented_behaviour_from_v1_9 => false) do
|
28
|
-
m = mock('m')
|
29
|
-
m.stubs(:foo).yields
|
30
|
-
assert_raises(LocalJumpError) { m.foo }
|
31
|
-
end
|
32
|
-
end
|
33
|
-
assert_passed(test_result)
|
34
|
-
end
|
35
|
-
|
36
|
-
def test_yields_when_block_expected_and_block_given
|
37
|
-
test_result = run_as_test do
|
38
|
-
m = mock('m')
|
39
|
-
m.stubs(:foo).with_block_given.yields
|
40
|
-
m.stubs(:foo).with_no_block_given.returns(:bar)
|
41
|
-
yielded = false
|
42
|
-
m.foo { yielded = true }
|
43
|
-
assert yielded
|
44
|
-
end
|
45
|
-
assert_passed(test_result)
|
46
|
-
end
|
47
|
-
|
48
|
-
def test_returns_when_no_block_expected_and_no_block_given
|
49
|
-
test_result = run_as_test do
|
50
|
-
m = mock('m')
|
51
|
-
m.stubs(:foo).with_block_given.yields
|
52
|
-
m.stubs(:foo).with_no_block_given.returns(:bar)
|
53
|
-
assert_equal :bar, m.foo
|
54
|
-
end
|
55
|
-
assert_passed(test_result)
|
56
|
-
end
|
57
|
-
|
58
|
-
def test_yields_values_when_stubbed_method_is_invoked
|
59
|
-
test_result = run_as_test do
|
60
|
-
m = mock('m')
|
61
|
-
m.stubs(:foo).yields(0, 1)
|
62
|
-
yielded = []
|
63
|
-
m.foo { |*args| yielded << args }
|
64
|
-
assert_equal [[0, 1]], yielded
|
65
|
-
end
|
66
|
-
assert_passed(test_result)
|
67
|
-
end
|
68
|
-
|
69
|
-
def test_yields_different_values_on_consecutive_invocations
|
70
|
-
test_result = run_as_test do
|
71
|
-
m = mock('m')
|
72
|
-
m.stubs(:foo).yields(0, 1).then.yields(2, 3)
|
73
|
-
yielded = []
|
74
|
-
m.foo { |*args| yielded << args }
|
75
|
-
m.foo { |*args| yielded << args }
|
76
|
-
assert_equal [[0, 1], [2, 3]], yielded
|
77
|
-
end
|
78
|
-
assert_passed(test_result)
|
79
|
-
end
|
80
|
-
end
|