flexmock 1.0.4 → 1.1.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/Gemfile +5 -1
- data/Gemfile.lock +4 -0
- data/README.rdoc +12 -2
- data/lib/flexmock/expectation.rb +3 -2
- data/lib/flexmock/version.rb +2 -2
- data/test/partial_mock_test.rb +16 -1
- metadata +10 -7
data/Gemfile
CHANGED
data/Gemfile.lock
CHANGED
@@ -2,7 +2,10 @@ GEM
|
|
2
2
|
remote: http://rubygems.org/
|
3
3
|
specs:
|
4
4
|
diff-lcs (1.1.3)
|
5
|
+
json (1.7.5)
|
5
6
|
rake (0.9.2.2)
|
7
|
+
rdoc (3.12)
|
8
|
+
json (~> 1.4)
|
6
9
|
rspec (2.11.0)
|
7
10
|
rspec-core (~> 2.11.0)
|
8
11
|
rspec-expectations (~> 2.11.0)
|
@@ -17,4 +20,5 @@ PLATFORMS
|
|
17
20
|
|
18
21
|
DEPENDENCIES
|
19
22
|
rake (>= 0.9.2.2)
|
23
|
+
rdoc
|
20
24
|
rspec (>= 2.0)
|
data/README.rdoc
CHANGED
@@ -1,9 +1,9 @@
|
|
1
|
-
|
1
|
+
= Flex Mock -- Making Mocking Easy
|
2
2
|
|
3
3
|
FlexMock is a simple, but flexible, mock object library for Ruby unit
|
4
4
|
testing.
|
5
5
|
|
6
|
-
Version :: 1.0
|
6
|
+
Version :: 1.1.0
|
7
7
|
|
8
8
|
= Links
|
9
9
|
|
@@ -522,6 +522,7 @@ not.
|
|
522
522
|
Alias for <code>and_yield( ... )</code>.
|
523
523
|
|
524
524
|
* <b>pass_thru</b>
|
525
|
+
* <b>pass_thru { |value| .... }</b>
|
525
526
|
|
526
527
|
Declares that the expected message will allow the method to be
|
527
528
|
passed to the original method definition in the partial mock object.
|
@@ -529,6 +530,15 @@ not.
|
|
529
530
|
there is no original method to be called, pass_thru will always
|
530
531
|
return the undefined object.
|
531
532
|
|
533
|
+
If a block is supplied to pass_thru, the value returned from the
|
534
|
+
original method will be passed to the block and the value of the
|
535
|
+
block will be returned. This allows you to mock methods on the
|
536
|
+
returned value.
|
537
|
+
|
538
|
+
Dog.should_receive(:new).pass_thru { |dog|
|
539
|
+
flexmock(dog, :wag => true)
|
540
|
+
}
|
541
|
+
|
532
542
|
=== Other Expectation Methods
|
533
543
|
|
534
544
|
* <b>mock</b>
|
data/lib/flexmock/expectation.rb
CHANGED
@@ -275,9 +275,10 @@ class FlexMock
|
|
275
275
|
end
|
276
276
|
alias :throws :and_throw
|
277
277
|
|
278
|
-
def pass_thru
|
278
|
+
def pass_thru(&block)
|
279
|
+
block ||= lambda { |value| value }
|
279
280
|
and_return { |*args|
|
280
|
-
@mock.flexmock_invoke_original(@sym, args)
|
281
|
+
block.call(@mock.flexmock_invoke_original(@sym, args))
|
281
282
|
}
|
282
283
|
end
|
283
284
|
|
data/lib/flexmock/version.rb
CHANGED
data/test/partial_mock_test.rb
CHANGED
@@ -67,12 +67,27 @@ class TestStubbing < Test::Unit::TestCase
|
|
67
67
|
assert_equal flexmock(obj), flexmock(obj)
|
68
68
|
end
|
69
69
|
|
70
|
-
def
|
70
|
+
def test_stubbed_methods_can_invoke_original_behavior_directly
|
71
71
|
dog = Dog.new
|
72
72
|
flexmock(dog).should_receive(:bark).pass_thru.once
|
73
73
|
assert_equal :woof, dog.bark
|
74
74
|
end
|
75
75
|
|
76
|
+
def test_stubbed_methods_can_invoke_original_behavior_with_modification
|
77
|
+
dog = Dog.new
|
78
|
+
flexmock(dog).should_receive(:bark).pass_thru { |result| result.to_s.upcase }.once
|
79
|
+
assert_equal "WOOF", dog.bark
|
80
|
+
end
|
81
|
+
|
82
|
+
def test_stubbed_methods_returning_partial_mocks
|
83
|
+
flexmock(Dog).should_receive(:new).pass_thru { |dog|
|
84
|
+
flexmock(dog, :beg => "Please")
|
85
|
+
}.once
|
86
|
+
dog = Dog.new
|
87
|
+
assert_equal "Please", dog.beg
|
88
|
+
assert_equal :woof, dog.bark
|
89
|
+
end
|
90
|
+
|
76
91
|
def test_multiple_methods_can_be_stubbed
|
77
92
|
dog = Dog.new
|
78
93
|
flexmock(dog).should_receive(:bark).and_return(:grrrr)
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: flexmock
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 1.0
|
4
|
+
version: 1.1.0
|
5
5
|
prerelease:
|
6
6
|
platform: ruby
|
7
7
|
authors:
|
@@ -9,7 +9,7 @@ authors:
|
|
9
9
|
autorequire:
|
10
10
|
bindir: bin
|
11
11
|
cert_chain: []
|
12
|
-
date: 2012-10-
|
12
|
+
date: 2012-10-30 00:00:00.000000000 Z
|
13
13
|
dependencies: []
|
14
14
|
description: ! "\n FlexMock is a extremely simple mock object class compatible\n
|
15
15
|
\ with the Test::Unit framework. Although the FlexMock's\n interface is
|
@@ -20,6 +20,8 @@ extensions: []
|
|
20
20
|
extra_rdoc_files:
|
21
21
|
- README.rdoc
|
22
22
|
- CHANGES
|
23
|
+
- doc/examples/rspec_examples_spec.rdoc
|
24
|
+
- doc/examples/test_unit_examples_test.rdoc
|
23
25
|
- doc/GoogleExample.rdoc
|
24
26
|
- doc/releases/flexmock-0.4.0.rdoc
|
25
27
|
- doc/releases/flexmock-0.4.1.rdoc
|
@@ -42,8 +44,6 @@ extra_rdoc_files:
|
|
42
44
|
- doc/releases/flexmock-0.9.0.rdoc
|
43
45
|
- doc/releases/flexmock-1.0.0.rdoc
|
44
46
|
- doc/releases/flexmock-1.0.3.rdoc
|
45
|
-
- doc/examples/rspec_examples_spec.rdoc
|
46
|
-
- doc/examples/test_unit_examples_test.rdoc
|
47
47
|
files:
|
48
48
|
- CHANGES
|
49
49
|
- Gemfile
|
@@ -116,6 +116,8 @@ files:
|
|
116
116
|
- test/undefined_test.rb
|
117
117
|
- flexmock.blurb
|
118
118
|
- install.rb
|
119
|
+
- doc/examples/rspec_examples_spec.rdoc
|
120
|
+
- doc/examples/test_unit_examples_test.rdoc
|
119
121
|
- doc/GoogleExample.rdoc
|
120
122
|
- doc/releases/flexmock-0.4.0.rdoc
|
121
123
|
- doc/releases/flexmock-0.4.1.rdoc
|
@@ -138,8 +140,6 @@ files:
|
|
138
140
|
- doc/releases/flexmock-0.9.0.rdoc
|
139
141
|
- doc/releases/flexmock-1.0.0.rdoc
|
140
142
|
- doc/releases/flexmock-1.0.3.rdoc
|
141
|
-
- doc/examples/rspec_examples_spec.rdoc
|
142
|
-
- doc/examples/test_unit_examples_test.rdoc
|
143
143
|
homepage: https://github.com/jimweirich/flexmock
|
144
144
|
licenses: []
|
145
145
|
post_install_message:
|
@@ -157,6 +157,9 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
157
157
|
- - ! '>='
|
158
158
|
- !ruby/object:Gem::Version
|
159
159
|
version: '0'
|
160
|
+
segments:
|
161
|
+
- 0
|
162
|
+
hash: 575343022424832079
|
160
163
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
161
164
|
none: false
|
162
165
|
requirements:
|
@@ -165,7 +168,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
165
168
|
version: '0'
|
166
169
|
requirements: []
|
167
170
|
rubyforge_project:
|
168
|
-
rubygems_version: 1.8.
|
171
|
+
rubygems_version: 1.8.24
|
169
172
|
signing_key:
|
170
173
|
specification_version: 3
|
171
174
|
summary: Simple and Flexible Mock Objects for Testing
|