mocha 0.5.6 → 0.9.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.
- data/README +4 -4
- data/RELEASE +45 -0
- data/Rakefile +55 -33
- data/lib/mocha.rb +1 -0
- data/lib/mocha/any_instance_method.rb +24 -4
- data/lib/mocha/backtrace_filter.rb +17 -0
- data/lib/mocha/cardinality.rb +92 -0
- data/lib/mocha/central.rb +1 -9
- data/lib/mocha/change_state_side_effect.rb +19 -0
- data/lib/mocha/class_method.rb +25 -5
- data/lib/mocha/configuration.rb +60 -0
- data/lib/mocha/exception_raiser.rb +1 -1
- data/lib/mocha/expectation.rb +109 -48
- data/lib/mocha/expectation_error.rb +6 -6
- data/lib/mocha/expectation_list.rb +10 -14
- data/lib/mocha/in_state_ordering_constraint.rb +19 -0
- data/lib/mocha/instance_method.rb +9 -0
- data/lib/mocha/logger.rb +15 -0
- data/lib/mocha/mock.rb +19 -14
- data/lib/mocha/mockery.rb +166 -0
- data/lib/mocha/module_method.rb +17 -0
- data/lib/mocha/names.rb +53 -0
- data/lib/mocha/object.rb +26 -9
- data/lib/mocha/parameter_matchers.rb +2 -1
- data/lib/mocha/parameter_matchers/all_of.rb +3 -3
- data/lib/mocha/parameter_matchers/any_of.rb +3 -3
- data/lib/mocha/parameter_matchers/anything.rb +1 -1
- data/lib/mocha/parameter_matchers/has_entries.rb +4 -1
- data/lib/mocha/parameter_matchers/has_entry.rb +3 -2
- data/lib/mocha/parameter_matchers/has_key.rb +1 -1
- data/lib/mocha/parameter_matchers/has_value.rb +1 -1
- data/lib/mocha/parameter_matchers/not.rb +2 -2
- data/lib/mocha/parameter_matchers/object.rb +1 -1
- data/lib/mocha/parameter_matchers/optionally.rb +22 -0
- data/lib/mocha/parameter_matchers/regexp_matches.rb +2 -2
- data/lib/mocha/parameter_matchers/responds_with.rb +43 -0
- data/lib/mocha/parameter_matchers/yaml_equivalent.rb +43 -0
- data/lib/mocha/single_return_value.rb +2 -9
- data/lib/mocha/standalone.rb +151 -17
- data/lib/mocha/state_machine.rb +91 -0
- data/lib/mocha/stubbing_error.rb +16 -0
- data/lib/mocha/test_case_adapter.rb +76 -22
- data/lib/stubba.rb +2 -1
- data/test/acceptance/acceptance_test_helper.rb +38 -0
- data/test/acceptance/bug_18914_test.rb +43 -0
- data/test/acceptance/{expected_invocation_count_acceptance_test.rb → expected_invocation_count_test.rb} +29 -20
- data/test/acceptance/failure_messages_test.rb +64 -0
- data/test/acceptance/{mocha_acceptance_test.rb → mocha_example_test.rb} +5 -5
- data/test/{integration/mocha_test_result_integration_test.rb → acceptance/mocha_test_result_test.rb} +19 -40
- data/test/acceptance/mock_test.rb +100 -0
- data/test/acceptance/{mock_with_initializer_block_acceptance_test.rb → mock_with_initializer_block_test.rb} +12 -5
- data/test/acceptance/{mocked_methods_dispatch_acceptance_test.rb → mocked_methods_dispatch_test.rb} +12 -5
- data/test/acceptance/{optional_parameters_acceptance_test.rb → optional_parameters_test.rb} +11 -4
- data/test/acceptance/{parameter_matcher_acceptance_test.rb → parameter_matcher_test.rb} +67 -5
- data/test/acceptance/{partial_mocks_acceptance_test.rb → partial_mocks_test.rb} +12 -5
- data/test/acceptance/return_value_test.rb +52 -0
- data/test/acceptance/{sequence_acceptance_test.rb → sequence_test.rb} +13 -6
- data/test/acceptance/{standalone_acceptance_test.rb → standalone_test.rb} +19 -11
- data/test/acceptance/states_test.rb +70 -0
- data/test/acceptance/stub_any_instance_method_test.rb +195 -0
- data/test/acceptance/stub_class_method_test.rb +203 -0
- data/test/acceptance/stub_everything_test.rb +56 -0
- data/test/acceptance/stub_instance_method_test.rb +165 -0
- data/test/acceptance/stub_module_method_test.rb +163 -0
- data/test/acceptance/stub_test.rb +52 -0
- data/test/acceptance/{stubba_acceptance_test.rb → stubba_example_test.rb} +1 -1
- data/test/{integration/stubba_test_result_integration_test.rb → acceptance/stubba_test_result_test.rb} +17 -36
- data/test/acceptance/stubbing_error_backtrace_test.rb +64 -0
- data/test/acceptance/stubbing_method_unnecessarily_test.rb +65 -0
- data/test/acceptance/stubbing_non_existent_any_instance_method_test.rb +130 -0
- data/test/acceptance/stubbing_non_existent_class_method_test.rb +155 -0
- data/test/acceptance/stubbing_non_existent_instance_method_test.rb +145 -0
- data/test/acceptance/stubbing_non_public_any_instance_method_test.rb +130 -0
- data/test/acceptance/stubbing_non_public_class_method_test.rb +161 -0
- data/test/acceptance/stubbing_non_public_instance_method_test.rb +141 -0
- data/test/acceptance/stubbing_on_non_mock_object_test.rb +64 -0
- data/test/execution_point.rb +3 -1
- data/test/simple_counter.rb +13 -0
- data/test/test_helper.rb +0 -1
- data/test/test_runner.rb +6 -4
- data/test/unit/any_instance_method_test.rb +1 -1
- data/test/unit/array_inspect_test.rb +1 -1
- data/test/unit/backtrace_filter_test.rb +19 -0
- data/test/unit/cardinality_test.rb +56 -0
- data/test/unit/central_test.rb +4 -63
- data/test/unit/change_state_side_effect_test.rb +41 -0
- data/test/unit/class_method_test.rb +38 -1
- data/test/unit/date_time_inspect_test.rb +1 -1
- data/test/unit/{expectation_raiser_test.rb → exception_raiser_test.rb} +14 -0
- data/test/unit/expectation_list_test.rb +4 -22
- data/test/unit/expectation_test.rb +70 -94
- data/test/unit/in_state_ordering_constraint_test.rb +43 -0
- data/test/unit/mock_test.rb +16 -37
- data/test/unit/mockery_test.rb +149 -0
- data/test/unit/{no_yield_test.rb → no_yields_test.rb} +0 -0
- data/test/unit/object_test.rb +6 -89
- data/test/unit/parameter_matchers/equals_test.rb +25 -0
- data/test/unit/parameter_matchers/has_entries_test.rb +22 -1
- data/test/unit/parameter_matchers/has_entry_test.rb +24 -2
- data/test/unit/parameter_matchers/has_key_test.rb +11 -0
- data/test/unit/parameter_matchers/has_value_test.rb +12 -0
- data/test/unit/parameter_matchers/regexp_matches_test.rb +1 -1
- data/test/unit/parameter_matchers/responds_with_test.rb +25 -0
- data/test/unit/parameter_matchers/stub_matcher.rb +4 -0
- data/test/unit/parameter_matchers/yaml_equivalent_test.rb +25 -0
- data/test/unit/single_return_value_test.rb +0 -19
- data/test/unit/state_machine_test.rb +98 -0
- metadata +108 -69
- data/lib/mocha/auto_verify.rb +0 -118
- data/lib/mocha/infinite_range.rb +0 -25
- data/lib/mocha/missing_expectation.rb +0 -17
- data/lib/mocha/setup_and_teardown.rb +0 -23
- data/lib/mocha/stub.rb +0 -18
- data/test/integration/stubba_integration_test.rb +0 -89
- data/test/unit/auto_verify_test.rb +0 -129
- data/test/unit/expectation_error_test.rb +0 -24
- data/test/unit/infinite_range_test.rb +0 -53
- data/test/unit/missing_expectation_test.rb +0 -42
- data/test/unit/setup_and_teardown_test.rb +0 -76
- data/test/unit/stub_test.rb +0 -24
metadata
CHANGED
@@ -1,52 +1,60 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
|
-
rubygems_version: 0.9.4
|
3
|
-
specification_version: 1
|
4
2
|
name: mocha
|
5
3
|
version: !ruby/object:Gem::Version
|
6
|
-
version: 0.
|
7
|
-
date: 2007-12-23 00:00:00 +00:00
|
8
|
-
summary: Mocking and stubbing library
|
9
|
-
require_paths:
|
10
|
-
- lib
|
11
|
-
email: mocha-developer@rubyforge.org
|
12
|
-
homepage: http://mocha.rubyforge.org
|
13
|
-
rubyforge_project: mocha
|
14
|
-
description: Mocking and stubbing library with JMock/SchMock syntax, which allows mocking and stubbing of methods on real (non-mock) classes.
|
15
|
-
autorequire: mocha
|
16
|
-
default_executable:
|
17
|
-
bindir: bin
|
18
|
-
has_rdoc: true
|
19
|
-
required_ruby_version: !ruby/object:Gem::Version::Requirement
|
20
|
-
requirements:
|
21
|
-
- - ">"
|
22
|
-
- !ruby/object:Gem::Version
|
23
|
-
version: 0.0.0
|
24
|
-
version:
|
4
|
+
version: 0.9.0
|
25
5
|
platform: ruby
|
26
|
-
signing_key:
|
27
|
-
cert_chain:
|
28
|
-
post_install_message:
|
29
6
|
authors:
|
30
7
|
- James Mead
|
8
|
+
autorequire: mocha
|
9
|
+
bindir: bin
|
10
|
+
cert_chain: []
|
11
|
+
|
12
|
+
date: 2008-06-24 00:00:00 +01:00
|
13
|
+
default_executable:
|
14
|
+
dependencies:
|
15
|
+
- !ruby/object:Gem::Dependency
|
16
|
+
name: rake
|
17
|
+
version_requirement:
|
18
|
+
version_requirements: !ruby/object:Gem::Requirement
|
19
|
+
requirements:
|
20
|
+
- - ">="
|
21
|
+
- !ruby/object:Gem::Version
|
22
|
+
version: "0"
|
23
|
+
version:
|
24
|
+
description: Mocking and stubbing library with JMock/SchMock syntax, which allows mocking and stubbing of methods on real (non-mock) classes.
|
25
|
+
email: mocha-developer@rubyforge.org
|
26
|
+
executables: []
|
27
|
+
|
28
|
+
extensions: []
|
29
|
+
|
30
|
+
extra_rdoc_files:
|
31
|
+
- README
|
32
|
+
- COPYING
|
31
33
|
files:
|
32
34
|
- lib/mocha/any_instance_method.rb
|
33
|
-
- lib/mocha/
|
35
|
+
- lib/mocha/backtrace_filter.rb
|
36
|
+
- lib/mocha/cardinality.rb
|
34
37
|
- lib/mocha/central.rb
|
38
|
+
- lib/mocha/change_state_side_effect.rb
|
35
39
|
- lib/mocha/class_method.rb
|
40
|
+
- lib/mocha/configuration.rb
|
36
41
|
- lib/mocha/deprecation.rb
|
37
42
|
- lib/mocha/exception_raiser.rb
|
38
43
|
- lib/mocha/expectation.rb
|
39
44
|
- lib/mocha/expectation_error.rb
|
40
45
|
- lib/mocha/expectation_list.rb
|
41
|
-
- lib/mocha/
|
46
|
+
- lib/mocha/in_state_ordering_constraint.rb
|
42
47
|
- lib/mocha/inspect.rb
|
43
48
|
- lib/mocha/instance_method.rb
|
44
49
|
- lib/mocha/is_a.rb
|
50
|
+
- lib/mocha/logger.rb
|
45
51
|
- lib/mocha/metaclass.rb
|
46
52
|
- lib/mocha/method_matcher.rb
|
47
|
-
- lib/mocha/missing_expectation.rb
|
48
53
|
- lib/mocha/mock.rb
|
54
|
+
- lib/mocha/mockery.rb
|
55
|
+
- lib/mocha/module_method.rb
|
49
56
|
- lib/mocha/multiple_yields.rb
|
57
|
+
- lib/mocha/names.rb
|
50
58
|
- lib/mocha/no_yields.rb
|
51
59
|
- lib/mocha/object.rb
|
52
60
|
- lib/mocha/parameter_matchers/all_of.rb
|
@@ -67,63 +75,88 @@ files:
|
|
67
75
|
- lib/mocha/parameter_matchers/object.rb
|
68
76
|
- lib/mocha/parameter_matchers/optionally.rb
|
69
77
|
- lib/mocha/parameter_matchers/regexp_matches.rb
|
78
|
+
- lib/mocha/parameter_matchers/responds_with.rb
|
79
|
+
- lib/mocha/parameter_matchers/yaml_equivalent.rb
|
70
80
|
- lib/mocha/parameter_matchers.rb
|
71
81
|
- lib/mocha/parameters_matcher.rb
|
72
82
|
- lib/mocha/pretty_parameters.rb
|
73
83
|
- lib/mocha/return_values.rb
|
74
84
|
- lib/mocha/sequence.rb
|
75
|
-
- lib/mocha/setup_and_teardown.rb
|
76
85
|
- lib/mocha/single_return_value.rb
|
77
86
|
- lib/mocha/single_yield.rb
|
78
87
|
- lib/mocha/standalone.rb
|
79
|
-
- lib/mocha/
|
88
|
+
- lib/mocha/state_machine.rb
|
89
|
+
- lib/mocha/stubbing_error.rb
|
80
90
|
- lib/mocha/test_case_adapter.rb
|
81
91
|
- lib/mocha/yield_parameters.rb
|
82
92
|
- lib/mocha.rb
|
83
93
|
- lib/mocha_standalone.rb
|
84
94
|
- lib/stubba.rb
|
85
|
-
- test/acceptance/
|
86
|
-
- test/acceptance/
|
87
|
-
- test/acceptance/
|
88
|
-
- test/acceptance/
|
89
|
-
- test/acceptance/
|
90
|
-
- test/acceptance/
|
91
|
-
- test/acceptance/
|
92
|
-
- test/acceptance/
|
93
|
-
- test/acceptance/
|
94
|
-
- test/acceptance/
|
95
|
+
- test/acceptance/acceptance_test_helper.rb
|
96
|
+
- test/acceptance/bug_18914_test.rb
|
97
|
+
- test/acceptance/expected_invocation_count_test.rb
|
98
|
+
- test/acceptance/failure_messages_test.rb
|
99
|
+
- test/acceptance/mocha_example_test.rb
|
100
|
+
- test/acceptance/mocha_test_result_test.rb
|
101
|
+
- test/acceptance/mock_test.rb
|
102
|
+
- test/acceptance/mock_with_initializer_block_test.rb
|
103
|
+
- test/acceptance/mocked_methods_dispatch_test.rb
|
104
|
+
- test/acceptance/optional_parameters_test.rb
|
105
|
+
- test/acceptance/parameter_matcher_test.rb
|
106
|
+
- test/acceptance/partial_mocks_test.rb
|
107
|
+
- test/acceptance/return_value_test.rb
|
108
|
+
- test/acceptance/sequence_test.rb
|
109
|
+
- test/acceptance/standalone_test.rb
|
110
|
+
- test/acceptance/states_test.rb
|
111
|
+
- test/acceptance/stub_any_instance_method_test.rb
|
112
|
+
- test/acceptance/stub_class_method_test.rb
|
113
|
+
- test/acceptance/stub_everything_test.rb
|
114
|
+
- test/acceptance/stub_instance_method_test.rb
|
115
|
+
- test/acceptance/stub_module_method_test.rb
|
116
|
+
- test/acceptance/stub_test.rb
|
117
|
+
- test/acceptance/stubba_example_test.rb
|
118
|
+
- test/acceptance/stubba_test_result_test.rb
|
119
|
+
- test/acceptance/stubbing_error_backtrace_test.rb
|
120
|
+
- test/acceptance/stubbing_method_unnecessarily_test.rb
|
121
|
+
- test/acceptance/stubbing_non_existent_any_instance_method_test.rb
|
122
|
+
- test/acceptance/stubbing_non_existent_class_method_test.rb
|
123
|
+
- test/acceptance/stubbing_non_existent_instance_method_test.rb
|
124
|
+
- test/acceptance/stubbing_non_public_any_instance_method_test.rb
|
125
|
+
- test/acceptance/stubbing_non_public_class_method_test.rb
|
126
|
+
- test/acceptance/stubbing_non_public_instance_method_test.rb
|
127
|
+
- test/acceptance/stubbing_on_non_mock_object_test.rb
|
95
128
|
- test/active_record_test_case.rb
|
96
129
|
- test/deprecation_disabler.rb
|
97
130
|
- test/execution_point.rb
|
98
|
-
- test/integration/mocha_test_result_integration_test.rb
|
99
|
-
- test/integration/stubba_integration_test.rb
|
100
|
-
- test/integration/stubba_test_result_integration_test.rb
|
101
131
|
- test/method_definer.rb
|
132
|
+
- test/simple_counter.rb
|
102
133
|
- test/test_helper.rb
|
103
134
|
- test/test_runner.rb
|
104
135
|
- test/unit/any_instance_method_test.rb
|
105
136
|
- test/unit/array_inspect_test.rb
|
106
|
-
- test/unit/
|
137
|
+
- test/unit/backtrace_filter_test.rb
|
138
|
+
- test/unit/cardinality_test.rb
|
107
139
|
- test/unit/central_test.rb
|
140
|
+
- test/unit/change_state_side_effect_test.rb
|
108
141
|
- test/unit/class_method_test.rb
|
109
142
|
- test/unit/date_time_inspect_test.rb
|
110
|
-
- test/unit/
|
143
|
+
- test/unit/exception_raiser_test.rb
|
111
144
|
- test/unit/expectation_list_test.rb
|
112
|
-
- test/unit/expectation_raiser_test.rb
|
113
145
|
- test/unit/expectation_test.rb
|
114
146
|
- test/unit/hash_inspect_test.rb
|
115
|
-
- test/unit/
|
147
|
+
- test/unit/in_state_ordering_constraint_test.rb
|
116
148
|
- test/unit/metaclass_test.rb
|
117
149
|
- test/unit/method_matcher_test.rb
|
118
|
-
- test/unit/missing_expectation_test.rb
|
119
150
|
- test/unit/mock_test.rb
|
151
|
+
- test/unit/mockery_test.rb
|
120
152
|
- test/unit/multiple_yields_test.rb
|
121
|
-
- test/unit/
|
153
|
+
- test/unit/no_yields_test.rb
|
122
154
|
- test/unit/object_inspect_test.rb
|
123
155
|
- test/unit/object_test.rb
|
124
156
|
- test/unit/parameter_matchers/all_of_test.rb
|
125
157
|
- test/unit/parameter_matchers/any_of_test.rb
|
126
158
|
- test/unit/parameter_matchers/anything_test.rb
|
159
|
+
- test/unit/parameter_matchers/equals_test.rb
|
127
160
|
- test/unit/parameter_matchers/has_entries_test.rb
|
128
161
|
- test/unit/parameter_matchers/has_entry_test.rb
|
129
162
|
- test/unit/parameter_matchers/has_key_test.rb
|
@@ -134,15 +167,16 @@ files:
|
|
134
167
|
- test/unit/parameter_matchers/kind_of_test.rb
|
135
168
|
- test/unit/parameter_matchers/not_test.rb
|
136
169
|
- test/unit/parameter_matchers/regexp_matches_test.rb
|
170
|
+
- test/unit/parameter_matchers/responds_with_test.rb
|
137
171
|
- test/unit/parameter_matchers/stub_matcher.rb
|
172
|
+
- test/unit/parameter_matchers/yaml_equivalent_test.rb
|
138
173
|
- test/unit/parameters_matcher_test.rb
|
139
174
|
- test/unit/return_values_test.rb
|
140
175
|
- test/unit/sequence_test.rb
|
141
|
-
- test/unit/setup_and_teardown_test.rb
|
142
176
|
- test/unit/single_return_value_test.rb
|
143
177
|
- test/unit/single_yield_test.rb
|
178
|
+
- test/unit/state_machine_test.rb
|
144
179
|
- test/unit/string_inspect_test.rb
|
145
|
-
- test/unit/stub_test.rb
|
146
180
|
- test/unit/yield_parameters_test.rb
|
147
181
|
- examples/misc.rb
|
148
182
|
- examples/mocha.rb
|
@@ -152,30 +186,35 @@ files:
|
|
152
186
|
- Rakefile
|
153
187
|
- README
|
154
188
|
- RELEASE
|
155
|
-
|
156
|
-
|
189
|
+
has_rdoc: true
|
190
|
+
homepage: http://mocha.rubyforge.org
|
191
|
+
post_install_message:
|
157
192
|
rdoc_options:
|
158
193
|
- --title
|
159
194
|
- Mocha
|
160
195
|
- --main
|
161
196
|
- README
|
162
197
|
- --line-numbers
|
163
|
-
|
164
|
-
-
|
165
|
-
|
166
|
-
|
167
|
-
|
168
|
-
|
169
|
-
|
198
|
+
require_paths:
|
199
|
+
- lib
|
200
|
+
required_ruby_version: !ruby/object:Gem::Requirement
|
201
|
+
requirements:
|
202
|
+
- - ">="
|
203
|
+
- !ruby/object:Gem::Version
|
204
|
+
version: "0"
|
205
|
+
version:
|
206
|
+
required_rubygems_version: !ruby/object:Gem::Requirement
|
207
|
+
requirements:
|
208
|
+
- - ">="
|
209
|
+
- !ruby/object:Gem::Version
|
210
|
+
version: "0"
|
211
|
+
version:
|
170
212
|
requirements: []
|
171
213
|
|
172
|
-
|
173
|
-
|
174
|
-
|
175
|
-
|
176
|
-
|
177
|
-
|
178
|
-
|
179
|
-
- !ruby/object:Gem::Version
|
180
|
-
version: 0.0.0
|
181
|
-
version:
|
214
|
+
rubyforge_project: mocha
|
215
|
+
rubygems_version: 1.1.1
|
216
|
+
signing_key:
|
217
|
+
specification_version: 2
|
218
|
+
summary: Mocking and stubbing library
|
219
|
+
test_files: []
|
220
|
+
|
data/lib/mocha/auto_verify.rb
DELETED
@@ -1,118 +0,0 @@
|
|
1
|
-
require 'mocha/mock'
|
2
|
-
require 'mocha/sequence'
|
3
|
-
|
4
|
-
module Mocha # :nodoc:
|
5
|
-
|
6
|
-
# Methods added to TestCase allowing creation of traditional mock objects.
|
7
|
-
#
|
8
|
-
# Mocks created this way will have their expectations automatically verified at the end of the test.
|
9
|
-
#
|
10
|
-
# See Mock for methods on mock objects.
|
11
|
-
module AutoVerify
|
12
|
-
|
13
|
-
def mocks # :nodoc:
|
14
|
-
@mocks ||= []
|
15
|
-
end
|
16
|
-
|
17
|
-
def reset_mocks # :nodoc:
|
18
|
-
@mocks = nil
|
19
|
-
end
|
20
|
-
|
21
|
-
# :call-seq: mock(name, &block) -> mock object
|
22
|
-
# mock(expected_methods = {}, &block) -> mock object
|
23
|
-
# mock(name, expected_methods = {}, &block) -> mock object
|
24
|
-
#
|
25
|
-
# Creates a mock object.
|
26
|
-
#
|
27
|
-
# +name+ is a +String+ identifier for the mock object.
|
28
|
-
#
|
29
|
-
# +expected_methods+ is a +Hash+ with expected method name symbols as keys and corresponding return values as values.
|
30
|
-
#
|
31
|
-
# +block+ is a block to be evaluated against the mock object instance, giving an alernative way to set up expectations & stubs.
|
32
|
-
#
|
33
|
-
# Note that (contrary to expectations set up by #stub) these expectations <b>must</b> be fulfilled during the test.
|
34
|
-
# def test_product
|
35
|
-
# product = mock('ipod_product', :manufacturer => 'ipod', :price => 100)
|
36
|
-
# assert_equal 'ipod', product.manufacturer
|
37
|
-
# assert_equal 100, product.price
|
38
|
-
# # an error will be raised unless both Product#manufacturer and Product#price have been called
|
39
|
-
# end
|
40
|
-
def mock(*arguments, &block)
|
41
|
-
name = arguments.shift if arguments.first.is_a?(String)
|
42
|
-
expectations = arguments.shift || {}
|
43
|
-
mock = Mock.new(name, &block)
|
44
|
-
mock.expects(expectations)
|
45
|
-
mocks << mock
|
46
|
-
mock
|
47
|
-
end
|
48
|
-
|
49
|
-
# :call-seq: stub(name, &block) -> mock object
|
50
|
-
# stub(stubbed_methods = {}, &block) -> mock object
|
51
|
-
# stub(name, stubbed_methods = {}, &block) -> mock object
|
52
|
-
#
|
53
|
-
# Creates a mock object.
|
54
|
-
#
|
55
|
-
# +name+ is a +String+ identifier for the mock object.
|
56
|
-
#
|
57
|
-
# +stubbed_methods+ is a +Hash+ with stubbed method name symbols as keys and corresponding return values as values.
|
58
|
-
#
|
59
|
-
# +block+ is a block to be evaluated against the mock object instance, giving an alernative way to set up expectations & stubs.
|
60
|
-
#
|
61
|
-
# Note that (contrary to expectations set up by #mock) these expectations <b>need not</b> be fulfilled during the test.
|
62
|
-
# def test_product
|
63
|
-
# product = stub('ipod_product', :manufacturer => 'ipod', :price => 100)
|
64
|
-
# assert_equal 'ipod', product.manufacturer
|
65
|
-
# assert_equal 100, product.price
|
66
|
-
# # an error will not be raised even if Product#manufacturer and Product#price have not been called
|
67
|
-
# end
|
68
|
-
def stub(*arguments, &block)
|
69
|
-
name = arguments.shift if arguments.first.is_a?(String)
|
70
|
-
expectations = arguments.shift || {}
|
71
|
-
stub = Mock.new(name, &block)
|
72
|
-
stub.stubs(expectations)
|
73
|
-
mocks << stub
|
74
|
-
stub
|
75
|
-
end
|
76
|
-
|
77
|
-
# :call-seq: stub_everything(name, &block) -> mock object
|
78
|
-
# stub_everything(stubbed_methods = {}, &block) -> mock object
|
79
|
-
# stub_everything(name, stubbed_methods = {}, &block) -> mock object
|
80
|
-
#
|
81
|
-
# Creates a mock object that accepts calls to any method.
|
82
|
-
#
|
83
|
-
# By default it will return +nil+ for any method call.
|
84
|
-
#
|
85
|
-
# +block+ is a block to be evaluated against the mock object instance, giving an alernative way to set up expectations & stubs.
|
86
|
-
#
|
87
|
-
# +name+ and +stubbed_methods+ work in the same way as for #stub.
|
88
|
-
# def test_product
|
89
|
-
# product = stub_everything('ipod_product', :price => 100)
|
90
|
-
# assert_nil product.manufacturer
|
91
|
-
# assert_nil product.any_old_method
|
92
|
-
# assert_equal 100, product.price
|
93
|
-
# end
|
94
|
-
def stub_everything(*arguments, &block)
|
95
|
-
name = arguments.shift if arguments.first.is_a?(String)
|
96
|
-
expectations = arguments.shift || {}
|
97
|
-
stub = Mock.new(name, &block)
|
98
|
-
stub.stub_everything
|
99
|
-
stub.stubs(expectations)
|
100
|
-
mocks << stub
|
101
|
-
stub
|
102
|
-
end
|
103
|
-
|
104
|
-
def verify_mocks # :nodoc:
|
105
|
-
mocks.each { |mock| mock.verify { yield if block_given? } }
|
106
|
-
end
|
107
|
-
|
108
|
-
def teardown_mocks # :nodoc:
|
109
|
-
reset_mocks
|
110
|
-
end
|
111
|
-
|
112
|
-
def sequence(name) # :nodoc:
|
113
|
-
Sequence.new(name)
|
114
|
-
end
|
115
|
-
|
116
|
-
end
|
117
|
-
|
118
|
-
end
|
data/lib/mocha/infinite_range.rb
DELETED
@@ -1,25 +0,0 @@
|
|
1
|
-
class Range
|
2
|
-
|
3
|
-
def self.at_least(minimum_value)
|
4
|
-
Range.new(minimum_value, infinite)
|
5
|
-
end
|
6
|
-
|
7
|
-
def self.at_most(maximum_value)
|
8
|
-
Range.new(-infinite, maximum_value, false)
|
9
|
-
end
|
10
|
-
|
11
|
-
def self.infinite
|
12
|
-
1/0.0
|
13
|
-
end
|
14
|
-
|
15
|
-
def mocha_inspect
|
16
|
-
if first.respond_to?(:to_f) and first.to_f.infinite? then
|
17
|
-
return "at most #{last}"
|
18
|
-
elsif last.respond_to?(:to_f) and last.to_f.infinite? then
|
19
|
-
return "at least #{first}"
|
20
|
-
else
|
21
|
-
to_s
|
22
|
-
end
|
23
|
-
end
|
24
|
-
|
25
|
-
end
|
@@ -1,17 +0,0 @@
|
|
1
|
-
require 'mocha/expectation'
|
2
|
-
|
3
|
-
module Mocha # :nodoc:
|
4
|
-
|
5
|
-
class MissingExpectation < Expectation # :nodoc:
|
6
|
-
|
7
|
-
def verify
|
8
|
-
message = error_message(0, 1)
|
9
|
-
similar_expectations = @mock.expectations.similar(@method_matcher.expected_method_name)
|
10
|
-
method_signatures = similar_expectations.map { |expectation| expectation.method_signature }
|
11
|
-
message << "\nSimilar expectations:\n#{method_signatures.join("\n")}" unless method_signatures.empty?
|
12
|
-
raise ExpectationError.new(message, backtrace)
|
13
|
-
end
|
14
|
-
|
15
|
-
end
|
16
|
-
|
17
|
-
end
|
@@ -1,23 +0,0 @@
|
|
1
|
-
require 'mocha/central'
|
2
|
-
|
3
|
-
module Mocha
|
4
|
-
|
5
|
-
module SetupAndTeardown
|
6
|
-
|
7
|
-
def setup_stubs
|
8
|
-
$stubba = Mocha::Central.new
|
9
|
-
end
|
10
|
-
|
11
|
-
def verify_stubs
|
12
|
-
$stubba.verify_all { yield if block_given? } if $stubba
|
13
|
-
end
|
14
|
-
|
15
|
-
def teardown_stubs
|
16
|
-
if $stubba then
|
17
|
-
$stubba.unstub_all
|
18
|
-
$stubba = nil
|
19
|
-
end
|
20
|
-
end
|
21
|
-
|
22
|
-
end
|
23
|
-
end
|