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,118 +0,0 @@
|
|
1
|
-
<!DOCTYPE html>
|
2
|
-
<html>
|
3
|
-
<head>
|
4
|
-
<meta charset="utf-8">
|
5
|
-
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
6
|
-
<title>
|
7
|
-
Top Level Namespace
|
8
|
-
|
9
|
-
— Mocha 1.11.2
|
10
|
-
|
11
|
-
</title>
|
12
|
-
|
13
|
-
<link rel="stylesheet" href="css/style.css" type="text/css" charset="utf-8" />
|
14
|
-
|
15
|
-
<link rel="stylesheet" href="css/common.css" type="text/css" charset="utf-8" />
|
16
|
-
|
17
|
-
<script type="text/javascript" charset="utf-8">
|
18
|
-
pathId = "";
|
19
|
-
relpath = '';
|
20
|
-
</script>
|
21
|
-
|
22
|
-
|
23
|
-
<script type="text/javascript" charset="utf-8" src="js/jquery.js"></script>
|
24
|
-
|
25
|
-
<script type="text/javascript" charset="utf-8" src="js/app.js"></script>
|
26
|
-
|
27
|
-
|
28
|
-
</head>
|
29
|
-
<body>
|
30
|
-
<div class="nav_wrap">
|
31
|
-
<iframe id="nav" src="class_list.html?1"></iframe>
|
32
|
-
<div id="resizer"></div>
|
33
|
-
</div>
|
34
|
-
|
35
|
-
<div id="main" tabindex="-1">
|
36
|
-
<div id="header">
|
37
|
-
<div id="menu">
|
38
|
-
|
39
|
-
<a href="_index.html">Index</a> »
|
40
|
-
|
41
|
-
|
42
|
-
<span class="title">Top Level Namespace</span>
|
43
|
-
|
44
|
-
</div>
|
45
|
-
|
46
|
-
<div id="search">
|
47
|
-
|
48
|
-
<a class="full_list_link" id="class_list_link"
|
49
|
-
href="class_list.html">
|
50
|
-
|
51
|
-
<svg width="24" height="24">
|
52
|
-
<rect x="0" y="4" width="24" height="4" rx="1" ry="1"></rect>
|
53
|
-
<rect x="0" y="12" width="24" height="4" rx="1" ry="1"></rect>
|
54
|
-
<rect x="0" y="20" width="24" height="4" rx="1" ry="1"></rect>
|
55
|
-
</svg>
|
56
|
-
</a>
|
57
|
-
|
58
|
-
</div>
|
59
|
-
<div class="clear"></div>
|
60
|
-
</div>
|
61
|
-
|
62
|
-
<div id="content"><h1>Top Level Namespace
|
63
|
-
|
64
|
-
|
65
|
-
|
66
|
-
</h1>
|
67
|
-
<div class="box_info">
|
68
|
-
|
69
|
-
|
70
|
-
|
71
|
-
|
72
|
-
|
73
|
-
|
74
|
-
|
75
|
-
|
76
|
-
|
77
|
-
|
78
|
-
|
79
|
-
</div>
|
80
|
-
|
81
|
-
<h2>Defined Under Namespace</h2>
|
82
|
-
<p class="children">
|
83
|
-
|
84
|
-
|
85
|
-
<strong class="modules">Modules:</strong> <span class='object_link'><a href="Mocha.html" title="Mocha (module)">Mocha</a></span>
|
86
|
-
|
87
|
-
|
88
|
-
|
89
|
-
|
90
|
-
</p>
|
91
|
-
|
92
|
-
|
93
|
-
|
94
|
-
|
95
|
-
|
96
|
-
|
97
|
-
|
98
|
-
|
99
|
-
|
100
|
-
<script async src="https://www.googletagmanager.com/gtag/js?id=UA-625523-7"></script>
|
101
|
-
<script>
|
102
|
-
window.dataLayer = window.dataLayer || [];
|
103
|
-
function gtag(){dataLayer.push(arguments);}
|
104
|
-
gtag('js', new Date());
|
105
|
-
|
106
|
-
gtag('config', 'UA-625523-7');
|
107
|
-
</script>
|
108
|
-
</div>
|
109
|
-
|
110
|
-
<div id="footer">
|
111
|
-
Generated on Sat Jan 4 17:36:46 2020 by
|
112
|
-
<a href="http://yardoc.org" title="Yay! A Ruby Documentation Tool" target="_parent">yard</a>
|
113
|
-
0.9.20 (ruby-2.6.5).
|
114
|
-
</div>
|
115
|
-
|
116
|
-
</div>
|
117
|
-
</body>
|
118
|
-
</html>
|
@@ -1,42 +0,0 @@
|
|
1
|
-
require File.expand_path('../../test_helper', __FILE__)
|
2
|
-
require 'test_runner'
|
3
|
-
require 'mocha/configuration'
|
4
|
-
require 'mocha/mockery'
|
5
|
-
require 'introspection'
|
6
|
-
|
7
|
-
if Mocha::Detection::MiniTest.testcase && (ENV['MOCHA_RUN_INTEGRATION_TESTS'] != 'test-unit')
|
8
|
-
require 'mocha/minitest'
|
9
|
-
else
|
10
|
-
require 'mocha/test_unit'
|
11
|
-
end
|
12
|
-
|
13
|
-
module AcceptanceTest
|
14
|
-
class FakeLogger
|
15
|
-
attr_reader :warnings
|
16
|
-
|
17
|
-
def initialize
|
18
|
-
@warnings = []
|
19
|
-
end
|
20
|
-
|
21
|
-
def warn(message)
|
22
|
-
@warnings << message
|
23
|
-
end
|
24
|
-
end
|
25
|
-
|
26
|
-
attr_reader :logger
|
27
|
-
|
28
|
-
include TestRunner
|
29
|
-
|
30
|
-
def setup_acceptance_test
|
31
|
-
Mocha::Configuration.reset_configuration
|
32
|
-
@logger = FakeLogger.new
|
33
|
-
mockery = Mocha::Mockery.instance
|
34
|
-
mockery.logger = @logger
|
35
|
-
end
|
36
|
-
|
37
|
-
def teardown_acceptance_test
|
38
|
-
Mocha::Configuration.reset_configuration
|
39
|
-
end
|
40
|
-
|
41
|
-
include Introspection::Assertions
|
42
|
-
end
|
@@ -1,37 +0,0 @@
|
|
1
|
-
require File.expand_path('../acceptance_test_helper', __FILE__)
|
2
|
-
|
3
|
-
class Bug18914Test < 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
|
-
class AlwaysEql
|
15
|
-
def my_method
|
16
|
-
true
|
17
|
-
end
|
18
|
-
|
19
|
-
def ==(_other)
|
20
|
-
true
|
21
|
-
end
|
22
|
-
|
23
|
-
def eql?(_other)
|
24
|
-
true
|
25
|
-
end
|
26
|
-
end
|
27
|
-
|
28
|
-
def test_should_not_allow_stubbing_of_non_mock_instance_disrupted_by_legitimate_overriding_of_eql_method
|
29
|
-
always_eql1 = AlwaysEql.new
|
30
|
-
always_eql1.stubs(:my_method).returns(false)
|
31
|
-
|
32
|
-
always_eql2 = AlwaysEql.new
|
33
|
-
always_eql2.stubs(:my_method).returns(false)
|
34
|
-
|
35
|
-
assert_equal false, always_eql2.my_method
|
36
|
-
end
|
37
|
-
end
|
@@ -1,31 +0,0 @@
|
|
1
|
-
require File.expand_path('../acceptance_test_helper', __FILE__)
|
2
|
-
|
3
|
-
class Bug21465Test < 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_allow_expected_method_name_to_be_a_string
|
15
|
-
test_result = run_as_test do
|
16
|
-
mock = mock()
|
17
|
-
mock.expects('wibble')
|
18
|
-
mock.wibble
|
19
|
-
end
|
20
|
-
assert_passed(test_result)
|
21
|
-
end
|
22
|
-
|
23
|
-
def test_should_allow_stubbed_method_name_to_be_a_string
|
24
|
-
test_result = run_as_test do
|
25
|
-
mock = mock()
|
26
|
-
mock.stubs('wibble')
|
27
|
-
mock.wibble
|
28
|
-
end
|
29
|
-
assert_passed(test_result)
|
30
|
-
end
|
31
|
-
end
|
@@ -1,22 +0,0 @@
|
|
1
|
-
require File.expand_path('../acceptance_test_helper', __FILE__)
|
2
|
-
|
3
|
-
class Bug21563Test < 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_allow_stubbing_of_verified_method
|
15
|
-
test_result = run_as_test do
|
16
|
-
object = Object.new
|
17
|
-
object.stubs(:verified?).returns(false)
|
18
|
-
assert !object.verified?
|
19
|
-
end
|
20
|
-
assert_passed(test_result)
|
21
|
-
end
|
22
|
-
end
|
@@ -1,69 +0,0 @@
|
|
1
|
-
require File.expand_path('../acceptance_test_helper', __FILE__)
|
2
|
-
|
3
|
-
class DisplayMatchingInvocationsAlongsideExpectationsTest < Mocha::TestCase
|
4
|
-
include AcceptanceTest
|
5
|
-
|
6
|
-
def setup
|
7
|
-
setup_acceptance_test
|
8
|
-
Mocha.configuration.display_matching_invocations_on_failure = true
|
9
|
-
end
|
10
|
-
|
11
|
-
def test_should_display_results
|
12
|
-
test_result = run_as_test do
|
13
|
-
foo = mock('foo')
|
14
|
-
foo.expects(:bar).with(1).returns('a')
|
15
|
-
foo.stubs(:bar).with(any_parameters).returns('f').raises(StandardError).throws(:tag, 'value')
|
16
|
-
|
17
|
-
foo.bar(1, 2)
|
18
|
-
assert_raises(StandardError) { foo.bar(3, 4) }
|
19
|
-
assert_throws(:tag) { foo.bar(5, 6) }
|
20
|
-
end
|
21
|
-
assert_invocations(
|
22
|
-
test_result,
|
23
|
-
'- allowed any number of times, invoked 3 times: #<Mock:foo>.bar(any_parameters)',
|
24
|
-
' - #<Mock:foo>.bar(1, 2) # => "f"',
|
25
|
-
' - #<Mock:foo>.bar(3, 4) # => raised StandardError',
|
26
|
-
' - #<Mock:foo>.bar(5, 6) # => threw (:tag, "value")'
|
27
|
-
)
|
28
|
-
end
|
29
|
-
|
30
|
-
def test_should_display_yields
|
31
|
-
test_result = run_as_test do
|
32
|
-
foo = mock('foo')
|
33
|
-
foo.expects(:bar).with(1).returns('a')
|
34
|
-
foo.stubs(:bar).with(any_parameters).multiple_yields('bc', %w[d e]).returns('f').raises(StandardError).throws(:tag, 'value')
|
35
|
-
|
36
|
-
foo.bar(1, 2) { |_ignored| }
|
37
|
-
assert_raises(StandardError) { foo.bar(3, 4) { |_ignored| } }
|
38
|
-
assert_throws(:tag) { foo.bar(5, 6) { |_ignored| } }
|
39
|
-
end
|
40
|
-
assert_invocations(
|
41
|
-
test_result,
|
42
|
-
'- allowed any number of times, invoked 3 times: #<Mock:foo>.bar(any_parameters)',
|
43
|
-
' - #<Mock:foo>.bar(1, 2) { ... } # => "f" after yielding ("bc"), then ("d", "e")',
|
44
|
-
' - #<Mock:foo>.bar(3, 4) { ... } # => raised StandardError after yielding ("bc"), then ("d", "e")',
|
45
|
-
' - #<Mock:foo>.bar(5, 6) { ... } # => threw (:tag, "value") after yielding ("bc"), then ("d", "e")'
|
46
|
-
)
|
47
|
-
end
|
48
|
-
|
49
|
-
def test_should_display_empty_yield_and_return
|
50
|
-
test_result = run_as_test do
|
51
|
-
foo = mock('foo')
|
52
|
-
foo.expects(:bar).with(1).returns('a')
|
53
|
-
foo.stubs(:bar).with(any_parameters).yields
|
54
|
-
|
55
|
-
foo.bar(1, 2) { |_ignored| }
|
56
|
-
end
|
57
|
-
assert_invocations(
|
58
|
-
test_result,
|
59
|
-
'- allowed any number of times, invoked once: #<Mock:foo>.bar(any_parameters)',
|
60
|
-
' - #<Mock:foo>.bar(1, 2) { ... } # => nil after yielding ()'
|
61
|
-
)
|
62
|
-
end
|
63
|
-
|
64
|
-
def assert_invocations(test_result, *invocations)
|
65
|
-
assert_failed(test_result)
|
66
|
-
assert_equal invocations.unshift('satisfied expectations:'),
|
67
|
-
test_result.failure_message_lines[-invocations.size..-1]
|
68
|
-
end
|
69
|
-
end
|
@@ -1,53 +0,0 @@
|
|
1
|
-
require File.expand_path('../acceptance_test_helper', __FILE__)
|
2
|
-
|
3
|
-
class ExceptionRescueTest < 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_unexpected_invocation_exception_is_not_caught_by_standard_rescue
|
15
|
-
test_result = run_as_test do
|
16
|
-
mock = mock('mock')
|
17
|
-
begin
|
18
|
-
mock.some_method
|
19
|
-
rescue StandardError => e
|
20
|
-
flunk "should not rescue #{e.class}"
|
21
|
-
end
|
22
|
-
end
|
23
|
-
assert_failed(test_result)
|
24
|
-
assert_equal 'unexpected invocation: #<Mock:mock>.some_method()', test_result.failure_message_lines[0]
|
25
|
-
end
|
26
|
-
|
27
|
-
def test_invocation_never_expected_exception_is_not_caught_by_standard_rescue
|
28
|
-
test_result = run_as_test do
|
29
|
-
mock = mock('mock')
|
30
|
-
mock.expects(:some_method).never
|
31
|
-
begin
|
32
|
-
mock.some_method
|
33
|
-
rescue StandardError => e
|
34
|
-
flunk "should not rescue #{e.class}"
|
35
|
-
end
|
36
|
-
end
|
37
|
-
assert_failed(test_result)
|
38
|
-
assert_equal 'unexpected invocation: #<Mock:mock>.some_method()', test_result.failure_message_lines[0]
|
39
|
-
end
|
40
|
-
|
41
|
-
def test_unsatisfied_expectation_exception_is_not_caught_by_standard_rescue
|
42
|
-
test_result = run_as_test do
|
43
|
-
mock = mock('mock')
|
44
|
-
mock.expects(:some_method)
|
45
|
-
end
|
46
|
-
assert_failed(test_result)
|
47
|
-
assert_equal [
|
48
|
-
'not all expectations were satisfied',
|
49
|
-
'unsatisfied expectations:',
|
50
|
-
'- expected exactly once, invoked never: #<Mock:mock>.some_method(any_parameters)'
|
51
|
-
], test_result.failure_message_lines
|
52
|
-
end
|
53
|
-
end
|
@@ -1,55 +0,0 @@
|
|
1
|
-
require File.expand_path('../acceptance_test_helper', __FILE__)
|
2
|
-
|
3
|
-
class ExpectationsOnMultipleMethodsTest < 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_expect_calls_to_multiple_methods
|
15
|
-
instance = Class.new do
|
16
|
-
def my_instance_method_1
|
17
|
-
:original_return_value_1
|
18
|
-
end
|
19
|
-
|
20
|
-
def my_instance_method_2
|
21
|
-
:original_return_value_2
|
22
|
-
end
|
23
|
-
end.new
|
24
|
-
test_result = run_as_test do
|
25
|
-
instance.expects(
|
26
|
-
:my_instance_method_1 => :new_return_value_1,
|
27
|
-
:my_instance_method_2 => :new_return_value_2
|
28
|
-
)
|
29
|
-
assert_equal :new_return_value_1, instance.my_instance_method_1
|
30
|
-
assert_equal :new_return_value_2, instance.my_instance_method_2
|
31
|
-
end
|
32
|
-
assert_passed(test_result)
|
33
|
-
end
|
34
|
-
|
35
|
-
def test_should_stub_calls_to_multiple_methods
|
36
|
-
instance = Class.new do
|
37
|
-
def my_instance_method_1
|
38
|
-
:original_return_value_1
|
39
|
-
end
|
40
|
-
|
41
|
-
def my_instance_method_2
|
42
|
-
:original_return_value_2
|
43
|
-
end
|
44
|
-
end.new
|
45
|
-
test_result = run_as_test do
|
46
|
-
instance.stubs(
|
47
|
-
:my_instance_method_1 => :new_return_value_1,
|
48
|
-
:my_instance_method_2 => :new_return_value_2
|
49
|
-
)
|
50
|
-
assert_equal :new_return_value_1, instance.my_instance_method_1
|
51
|
-
assert_equal :new_return_value_2, instance.my_instance_method_2
|
52
|
-
end
|
53
|
-
assert_passed(test_result)
|
54
|
-
end
|
55
|
-
end
|
@@ -1,229 +0,0 @@
|
|
1
|
-
require File.expand_path('../acceptance_test_helper', __FILE__)
|
2
|
-
|
3
|
-
class ExpectedInvocationCountTest < 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_pass_if_method_is_never_expected_and_is_never_called
|
15
|
-
test_result = run_as_test do
|
16
|
-
mock = mock('mock')
|
17
|
-
mock.expects(:method).never
|
18
|
-
0.times { mock.method }
|
19
|
-
end
|
20
|
-
assert_passed(test_result)
|
21
|
-
end
|
22
|
-
|
23
|
-
def test_should_fail_fast_if_method_is_never_expected_but_is_called_once
|
24
|
-
test_result = run_as_test do
|
25
|
-
mock = mock('mock')
|
26
|
-
mock.expects(:method).never
|
27
|
-
1.times { mock.method }
|
28
|
-
end
|
29
|
-
assert_failed(test_result)
|
30
|
-
assert_equal [
|
31
|
-
'unexpected invocation: #<Mock:mock>.method()',
|
32
|
-
'unsatisfied expectations:',
|
33
|
-
'- expected never, invoked once: #<Mock:mock>.method(any_parameters)'
|
34
|
-
], test_result.failure_message_lines
|
35
|
-
end
|
36
|
-
|
37
|
-
def test_should_pass_if_method_is_expected_twice_and_is_called_twice
|
38
|
-
test_result = run_as_test do
|
39
|
-
mock = mock('mock')
|
40
|
-
mock.expects(:method).twice
|
41
|
-
2.times { mock.method }
|
42
|
-
end
|
43
|
-
assert_passed(test_result)
|
44
|
-
end
|
45
|
-
|
46
|
-
def test_should_fail_if_method_is_expected_twice_but_is_called_once
|
47
|
-
test_result = run_as_test do
|
48
|
-
mock = mock('mock')
|
49
|
-
mock.expects(:method).twice
|
50
|
-
1.times { mock.method }
|
51
|
-
end
|
52
|
-
assert_failed(test_result)
|
53
|
-
assert_equal [
|
54
|
-
'not all expectations were satisfied',
|
55
|
-
'unsatisfied expectations:',
|
56
|
-
'- expected exactly twice, invoked once: #<Mock:mock>.method(any_parameters)'
|
57
|
-
], test_result.failure_message_lines
|
58
|
-
end
|
59
|
-
|
60
|
-
def test_should_fail_fast_if_method_is_expected_twice_but_is_called_three_times
|
61
|
-
test_result = run_as_test do
|
62
|
-
mock = mock('mock')
|
63
|
-
mock.expects(:method).twice
|
64
|
-
3.times { mock.method }
|
65
|
-
end
|
66
|
-
assert_failed(test_result)
|
67
|
-
assert_equal [
|
68
|
-
'unexpected invocation: #<Mock:mock>.method()',
|
69
|
-
'unsatisfied expectations:',
|
70
|
-
'- expected exactly twice, invoked 3 times: #<Mock:mock>.method(any_parameters)'
|
71
|
-
], test_result.failure_message_lines
|
72
|
-
end
|
73
|
-
|
74
|
-
def test_should_pass_if_method_is_expected_between_two_and_four_times_and_is_called_twice
|
75
|
-
test_result = run_as_test do
|
76
|
-
mock = mock('mock')
|
77
|
-
mock.expects(:method).times(2..4)
|
78
|
-
2.times { mock.method }
|
79
|
-
end
|
80
|
-
assert_passed(test_result)
|
81
|
-
end
|
82
|
-
|
83
|
-
def test_should_pass_if_method_is_expected_between_two_and_four_times_and_is_called_three_times
|
84
|
-
test_result = run_as_test do
|
85
|
-
mock = mock('mock')
|
86
|
-
mock.expects(:method).times(2..4)
|
87
|
-
3.times { mock.method }
|
88
|
-
end
|
89
|
-
assert_passed(test_result)
|
90
|
-
end
|
91
|
-
|
92
|
-
def test_should_pass_if_method_is_expected_between_two_and_four_times_and_is_called_four_times
|
93
|
-
test_result = run_as_test do
|
94
|
-
mock = mock('mock')
|
95
|
-
mock.expects(:method).times(2..4)
|
96
|
-
4.times { mock.method }
|
97
|
-
end
|
98
|
-
assert_passed(test_result)
|
99
|
-
end
|
100
|
-
|
101
|
-
def test_should_fail_if_method_is_expected_between_two_and_four_times_and_is_called_once
|
102
|
-
test_result = run_as_test do
|
103
|
-
mock = mock('mock')
|
104
|
-
mock.expects(:method).times(2..4)
|
105
|
-
1.times { mock.method }
|
106
|
-
end
|
107
|
-
assert_failed(test_result)
|
108
|
-
assert_equal [
|
109
|
-
'not all expectations were satisfied',
|
110
|
-
'unsatisfied expectations:',
|
111
|
-
'- expected between 2 and 4 times, invoked once: #<Mock:mock>.method(any_parameters)'
|
112
|
-
], test_result.failure_message_lines
|
113
|
-
end
|
114
|
-
|
115
|
-
def test_should_fail_fast_if_method_is_expected_between_two_and_four_times_and_is_called_five_times
|
116
|
-
test_result = run_as_test do
|
117
|
-
mock = mock('mock')
|
118
|
-
mock.expects(:method).times(2..4)
|
119
|
-
5.times { mock.method }
|
120
|
-
end
|
121
|
-
assert_failed(test_result)
|
122
|
-
assert_equal [
|
123
|
-
'unexpected invocation: #<Mock:mock>.method()',
|
124
|
-
'unsatisfied expectations:',
|
125
|
-
'- expected between 2 and 4 times, invoked 5 times: #<Mock:mock>.method(any_parameters)'
|
126
|
-
], test_result.failure_message_lines
|
127
|
-
end
|
128
|
-
|
129
|
-
def test_should_pass_if_method_is_expected_at_least_once_and_is_called_once
|
130
|
-
test_result = run_as_test do
|
131
|
-
mock = mock('mock')
|
132
|
-
mock.expects(:method).at_least_once
|
133
|
-
1.times { mock.method }
|
134
|
-
end
|
135
|
-
assert_passed(test_result)
|
136
|
-
end
|
137
|
-
|
138
|
-
def test_should_pass_if_method_is_expected_at_least_once_and_is_called_twice
|
139
|
-
test_result = run_as_test do
|
140
|
-
mock = mock('mock')
|
141
|
-
mock.expects(:method).at_least_once
|
142
|
-
2.times { mock.method }
|
143
|
-
end
|
144
|
-
assert_passed(test_result)
|
145
|
-
end
|
146
|
-
|
147
|
-
def test_should_fail_if_method_is_expected_at_least_once_but_is_never_called
|
148
|
-
test_result = run_as_test do
|
149
|
-
mock = mock('mock')
|
150
|
-
mock.expects(:method).at_least_once
|
151
|
-
0.times { mock.method }
|
152
|
-
end
|
153
|
-
assert_failed(test_result)
|
154
|
-
assert_equal [
|
155
|
-
'not all expectations were satisfied',
|
156
|
-
'unsatisfied expectations:',
|
157
|
-
'- expected at least once, invoked never: #<Mock:mock>.method(any_parameters)'
|
158
|
-
], test_result.failure_message_lines
|
159
|
-
end
|
160
|
-
|
161
|
-
def test_should_pass_if_method_is_expected_at_most_once_and_is_never_called
|
162
|
-
test_result = run_as_test do
|
163
|
-
mock = mock('mock')
|
164
|
-
mock.expects(:method).at_most_once
|
165
|
-
0.times { mock.method }
|
166
|
-
end
|
167
|
-
assert_passed(test_result)
|
168
|
-
end
|
169
|
-
|
170
|
-
def test_should_pass_if_method_is_expected_at_most_once_and_called_once
|
171
|
-
test_result = run_as_test do
|
172
|
-
mock = mock('mock')
|
173
|
-
mock.expects(:method).at_most_once
|
174
|
-
1.times { mock.method }
|
175
|
-
end
|
176
|
-
assert_passed(test_result)
|
177
|
-
end
|
178
|
-
|
179
|
-
def test_should_fail_fast_if_method_is_expected_at_most_once_but_is_called_twice
|
180
|
-
test_result = run_as_test do
|
181
|
-
mock = mock('mock')
|
182
|
-
mock.expects(:method).at_most_once
|
183
|
-
2.times { mock.method }
|
184
|
-
end
|
185
|
-
assert_failed(test_result)
|
186
|
-
assert_equal [
|
187
|
-
'unexpected invocation: #<Mock:mock>.method()',
|
188
|
-
'unsatisfied expectations:',
|
189
|
-
'- expected at most once, invoked twice: #<Mock:mock>.method(any_parameters)'
|
190
|
-
], test_result.failure_message_lines
|
191
|
-
end
|
192
|
-
|
193
|
-
def test_should_pass_if_method_is_never_expected_and_is_never_called_even_if_everything_is_stubbed
|
194
|
-
test_result = run_as_test do
|
195
|
-
stub = stub_everything('stub')
|
196
|
-
stub.expects(:method).never
|
197
|
-
0.times { stub.method }
|
198
|
-
end
|
199
|
-
assert_passed(test_result)
|
200
|
-
end
|
201
|
-
|
202
|
-
def test_should_fail_fast_if_method_is_never_expected_but_is_called_once_even_if_everything_is_stubbed
|
203
|
-
test_result = run_as_test do
|
204
|
-
stub = stub_everything('stub')
|
205
|
-
stub.expects(:method).never
|
206
|
-
1.times { stub.method }
|
207
|
-
end
|
208
|
-
assert_failed(test_result)
|
209
|
-
assert_equal [
|
210
|
-
'unexpected invocation: #<Mock:stub>.method()',
|
211
|
-
'unsatisfied expectations:',
|
212
|
-
'- expected never, invoked once: #<Mock:stub>.method(any_parameters)'
|
213
|
-
], test_result.failure_message_lines
|
214
|
-
end
|
215
|
-
|
216
|
-
def test_should_fail_fast_if_there_is_no_matching_expectation
|
217
|
-
test_result = run_as_test do
|
218
|
-
mock = mock('mock')
|
219
|
-
mock.expects(:method).with(1)
|
220
|
-
1.times { mock.method }
|
221
|
-
end
|
222
|
-
assert_failed(test_result)
|
223
|
-
assert_equal [
|
224
|
-
'unexpected invocation: #<Mock:mock>.method()',
|
225
|
-
'unsatisfied expectations:',
|
226
|
-
'- expected exactly once, invoked never: #<Mock:mock>.method(1)'
|
227
|
-
], test_result.failure_message_lines
|
228
|
-
end
|
229
|
-
end
|