rr 1.0.1 → 1.0.2
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/CHANGES +8 -1
- data/README.rdoc +3 -1
- data/VERSION.yml +1 -1
- data/lib/rr/method_dispatches/method_missing_dispatch.rb +0 -1
- data/spec/api/mock/mock_spec.rb +10 -0
- data/spec/api/stub/stub_spec.rb +26 -0
- metadata +4 -4
data/CHANGES
CHANGED
@@ -1,3 +1,10 @@
|
|
1
|
+
1.0.2
|
2
|
+
- Fixed Two calls recorded to a mock expecting only one call when called via another mock's yield block (http://github.com/btakita/rr/issues/closed#issue/42). Patch by Eugene Pimenov (http://github.com/libc).
|
3
|
+
|
4
|
+
1.0.1
|
5
|
+
- Removed new_instance_of for Ruby 1.9.2 compatibility. instance_of is now an alias for any_instance_of.
|
6
|
+
- Compatible with Ruby 1.9.2
|
7
|
+
|
1
8
|
1.0.0
|
2
9
|
- Added any_instance_of (aliased by all_instances_of), which binds methods directly to the class (instead of the eigenclass).
|
3
10
|
- Subclasses of a injected class do not have their methods overridden.
|
@@ -250,4 +257,4 @@
|
|
250
257
|
- Rspec and Test::Unit integration fixes
|
251
258
|
|
252
259
|
* 0.1.0
|
253
|
-
- Initial Release
|
260
|
+
- Initial Release
|
data/README.rdoc
CHANGED
@@ -363,6 +363,7 @@ If you have directly contributed to RR and I missed you in this list, please let
|
|
363
363
|
* David Chelimsky for encouragement to make the RR framework, for developing the Rspec mock framework, syntax ideas, and patches
|
364
364
|
* Daniel Sudol for identifing performance issues with RR
|
365
365
|
* Dmitry Ratnikov for patches
|
366
|
+
* Eugene Pimenov for patches
|
366
367
|
* Felix Morio for pairing with me
|
367
368
|
* Gabriel Horner for patches
|
368
369
|
* Gerard Meszaros for his excellent book "xUnit Test Patterns"
|
@@ -380,4 +381,5 @@ If you have directly contributed to RR and I missed you in this list, please let
|
|
380
381
|
* Phil Darnowsky for patches
|
381
382
|
* Pivotal Labs for sponsoring RR development
|
382
383
|
* Stephen Baker for Developing Rspec
|
383
|
-
* Tatsuya Ono for patches
|
384
|
+
* Tatsuya Ono for patches
|
385
|
+
* Tuomas Kareinen for a bug report
|
data/VERSION.yml
CHANGED
@@ -16,7 +16,6 @@ module RR
|
|
16
16
|
if Injections::DoubleInjection.exists?(subject_class, method_name)
|
17
17
|
@double = find_double_to_attempt
|
18
18
|
if double
|
19
|
-
call_yields
|
20
19
|
return_value = extract_subject_from_return_value(call_implementation)
|
21
20
|
if after_call_proc
|
22
21
|
extract_subject_from_return_value(after_call_proc.call(return_value))
|
data/spec/api/mock/mock_spec.rb
CHANGED
@@ -156,6 +156,16 @@ describe "mock" do
|
|
156
156
|
end.should raise_error(RR::Errors::DoubleNotFoundError)
|
157
157
|
end
|
158
158
|
|
159
|
+
it "expects a method call to a mock via another mock's block yield only once" do
|
160
|
+
cage = Object.new
|
161
|
+
cat = Object.new
|
162
|
+
mock(cat).miau # should be expected to be called only once
|
163
|
+
mock(cage).find_cat.yields(cat)
|
164
|
+
mock(cage).cats
|
165
|
+
cage.find_cat { |c| c.miau }
|
166
|
+
cage.cats
|
167
|
+
end
|
168
|
+
|
159
169
|
describe "on class method" do
|
160
170
|
class SampleClass1
|
161
171
|
def self.hello; "hello!"; end
|
data/spec/api/stub/stub_spec.rb
CHANGED
@@ -123,4 +123,30 @@ describe "stub" do
|
|
123
123
|
subject.foobar(4).should == :baz
|
124
124
|
end
|
125
125
|
end
|
126
|
+
|
127
|
+
context "stub that yields" do
|
128
|
+
context "when yields called without any arguments" do
|
129
|
+
it "yields only once" do
|
130
|
+
called_from_block = mock!.foo.once.subject
|
131
|
+
block_caller = stub!.bar.yields.subject
|
132
|
+
block_caller.bar { called_from_block.foo }
|
133
|
+
end
|
134
|
+
end
|
135
|
+
|
136
|
+
context "when yields called with an argument" do
|
137
|
+
it "yields only once" do
|
138
|
+
called_from_block = mock!.foo(1).once.subject
|
139
|
+
block_caller = stub!.bar.yields(1).subject
|
140
|
+
block_caller.bar { |argument| called_from_block.foo(argument) }
|
141
|
+
end
|
142
|
+
end
|
143
|
+
|
144
|
+
context "when yields calls are chained" do
|
145
|
+
it "yields several times" do
|
146
|
+
called_from_block = mock!.foo(1).once.then.foo(2).once.subject
|
147
|
+
block_caller = stub!.bar.yields(1).yields(2).subject
|
148
|
+
block_caller.bar { |argument| called_from_block.foo(argument) }
|
149
|
+
end
|
150
|
+
end
|
151
|
+
end
|
126
152
|
end
|
metadata
CHANGED
@@ -1,13 +1,13 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: rr
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
hash:
|
4
|
+
hash: 19
|
5
5
|
prerelease: false
|
6
6
|
segments:
|
7
7
|
- 1
|
8
8
|
- 0
|
9
|
-
-
|
10
|
-
version: 1.0.
|
9
|
+
- 2
|
10
|
+
version: 1.0.2
|
11
11
|
platform: ruby
|
12
12
|
authors:
|
13
13
|
- Brian Takita
|
@@ -15,7 +15,7 @@ autorequire:
|
|
15
15
|
bindir: bin
|
16
16
|
cert_chain: []
|
17
17
|
|
18
|
-
date: 2010-
|
18
|
+
date: 2010-11-01 00:00:00 -07:00
|
19
19
|
default_executable:
|
20
20
|
dependencies: []
|
21
21
|
|