mocha 0.9.1 → 0.9.2
Sign up to get free protection for your applications and to get access to all the features.
- data/RELEASE +5 -0
- data/Rakefile +2 -2
- data/lib/mocha/expectation.rb +6 -0
- data/lib/mocha/mock.rb +6 -2
- data/lib/mocha/parameter_matchers.rb +1 -0
- data/test/acceptance/parameter_matcher_test.rb +31 -1
- data/test/unit/mock_test.rb +5 -0
- metadata +4 -3
data/RELEASE
CHANGED
@@ -1,3 +1,8 @@
|
|
1
|
+
= 0.9.2 (r355)
|
2
|
+
* Improved documentation to address [#22530] 'Mock methods with multiple return values not possible?'
|
3
|
+
* respond_with parameter matcher was not available in tests.
|
4
|
+
* Patch [#22630] Fix for a bug in running Rails tests with Ruby 1.8.7. Array#flatten was being called which in turn was checking whether each element responded to #to_ary. This check was using the two parameter version of #respond_to?, but Mock was only defining a one parameter version.
|
5
|
+
|
1
6
|
= 0.9.1 (r349)
|
2
7
|
|
3
8
|
* Fixed bug #21465 - expects & stubs should support method names as strings (as well as symbols) or fail fast. Convert all expectation method names to a symbol in case they were supplied as a string.
|
data/Rakefile
CHANGED
@@ -5,7 +5,7 @@ require 'rake/testtask'
|
|
5
5
|
require 'rake/contrib/sshpublisher'
|
6
6
|
|
7
7
|
module Mocha
|
8
|
-
VERSION = "0.9.
|
8
|
+
VERSION = "0.9.2"
|
9
9
|
end
|
10
10
|
|
11
11
|
desc "Run all tests"
|
@@ -129,7 +129,7 @@ task 'examples' do
|
|
129
129
|
end
|
130
130
|
end
|
131
131
|
|
132
|
-
Gem::
|
132
|
+
Gem.manage_gems if Gem::RubyGemsVersion < '1.2.0'
|
133
133
|
|
134
134
|
specification = Gem::Specification.new do |s|
|
135
135
|
s.name = "mocha"
|
data/lib/mocha/expectation.rb
CHANGED
@@ -249,6 +249,12 @@ module Mocha # :nodoc:
|
|
249
249
|
# object.expected_method # => 1
|
250
250
|
# object.expected_method # => 2
|
251
251
|
# object.expected_method # => raises exception of class Exception1
|
252
|
+
# Note that in Ruby a method returning multiple values is exactly equivalent to a method returning an Array of those values.
|
253
|
+
# object = mock()
|
254
|
+
# object.stubs(:expected_method).returns([1, 2])
|
255
|
+
# x, y = object.expected_method
|
256
|
+
# x # => 1
|
257
|
+
# y # => 2
|
252
258
|
def returns(*values)
|
253
259
|
@return_values += ReturnValues.build(*values)
|
254
260
|
self
|
data/lib/mocha/mock.rb
CHANGED
@@ -165,9 +165,13 @@ module Mocha # :nodoc:
|
|
165
165
|
end
|
166
166
|
end
|
167
167
|
|
168
|
-
def respond_to?(symbol)
|
168
|
+
def respond_to?(symbol, include_private = false)
|
169
169
|
if @responder then
|
170
|
-
@responder.respond_to?
|
170
|
+
if @responder.method(:respond_to?).arity > 1
|
171
|
+
@responder.respond_to?(symbol, include_private)
|
172
|
+
else
|
173
|
+
@responder.respond_to?(symbol)
|
174
|
+
end
|
171
175
|
else
|
172
176
|
@expectations.matches_method?(symbol)
|
173
177
|
end
|
@@ -23,4 +23,5 @@ require 'mocha/parameter_matchers/kind_of'
|
|
23
23
|
require 'mocha/parameter_matchers/not'
|
24
24
|
require 'mocha/parameter_matchers/optionally'
|
25
25
|
require 'mocha/parameter_matchers/regexp_matches'
|
26
|
+
require 'mocha/parameter_matchers/responds_with'
|
26
27
|
require 'mocha/parameter_matchers/yaml_equivalent'
|
@@ -176,4 +176,34 @@ class ParameterMatcherTest < Test::Unit::TestCase
|
|
176
176
|
assert_failed(test_result)
|
177
177
|
end
|
178
178
|
|
179
|
-
|
179
|
+
def test_should_match_parameter_that_responds_with_specified_value
|
180
|
+
klass = Class.new do
|
181
|
+
def quack
|
182
|
+
'quack'
|
183
|
+
end
|
184
|
+
end
|
185
|
+
duck = klass.new
|
186
|
+
test_result = run_test do
|
187
|
+
mock = mock()
|
188
|
+
mock.expects(:method).with(responds_with(:quack, 'quack'))
|
189
|
+
mock.method(duck)
|
190
|
+
end
|
191
|
+
assert_passed(test_result)
|
192
|
+
end
|
193
|
+
|
194
|
+
def test_should_not_match_parameter_that_does_not_respond_with_specified_value
|
195
|
+
klass = Class.new do
|
196
|
+
def quack
|
197
|
+
'woof'
|
198
|
+
end
|
199
|
+
end
|
200
|
+
duck = klass.new
|
201
|
+
test_result = run_test do
|
202
|
+
mock = mock()
|
203
|
+
mock.expects(:method).with(responds_with(:quack, 'quack'))
|
204
|
+
mock.method(duck)
|
205
|
+
end
|
206
|
+
assert_failed(test_result)
|
207
|
+
end
|
208
|
+
|
209
|
+
end
|
data/test/unit/mock_test.rb
CHANGED
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: mocha
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.9.
|
4
|
+
version: 0.9.2
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- James Mead
|
@@ -9,11 +9,12 @@ autorequire: mocha
|
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
11
|
|
12
|
-
date: 2008-
|
12
|
+
date: 2008-11-03 00:00:00 +00:00
|
13
13
|
default_executable:
|
14
14
|
dependencies:
|
15
15
|
- !ruby/object:Gem::Dependency
|
16
16
|
name: rake
|
17
|
+
type: :runtime
|
17
18
|
version_requirement:
|
18
19
|
version_requirements: !ruby/object:Gem::Requirement
|
19
20
|
requirements:
|
@@ -216,7 +217,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
216
217
|
requirements: []
|
217
218
|
|
218
219
|
rubyforge_project: mocha
|
219
|
-
rubygems_version: 1.
|
220
|
+
rubygems_version: 1.3.0
|
220
221
|
signing_key:
|
221
222
|
specification_version: 2
|
222
223
|
summary: Mocking and stubbing library
|