verified_double 0.1.1 → 0.2.0
Sign up to get free protection for your applications and to get access to all the features.
- data/CHANGELOG.markdown +12 -0
- data/README.md +25 -14
- data/features/CHANGELOG.markdown +12 -0
- data/features/readme.md +25 -14
- data/features/verified_mocks.feature +4 -2
- data/lib/verified_double.rb +10 -1
- data/lib/verified_double/matchers.rb +2 -2
- data/lib/verified_double/method_signature.rb +5 -5
- data/lib/verified_double/method_signature/boolean_value.rb +9 -0
- data/lib/verified_double/method_signature/class_value.rb +17 -0
- data/lib/verified_double/method_signature/instance_double_value.rb +9 -0
- data/lib/verified_double/method_signature/instance_value.rb +17 -0
- data/lib/verified_double/method_signature/recording_double_class_value.rb +9 -0
- data/lib/verified_double/method_signature/rspec_double_value.rb +9 -0
- data/lib/verified_double/method_signature/value.rb +37 -0
- data/lib/verified_double/method_signatures_report.rb +10 -3
- data/lib/verified_double/parse_method_signature.rb +2 -2
- data/lib/verified_double/recorded_method_signature.rb +9 -0
- data/lib/verified_double/recording_double.rb +13 -4
- data/lib/verified_double/stack_frame.rb +11 -0
- data/lib/verified_double/version.rb +1 -1
- data/spec/spec_helper.rb +1 -0
- data/spec/verified_double/matchers_spec.rb +1 -1
- data/spec/verified_double/method_signature/boolean_value_spec.rb +11 -0
- data/spec/verified_double/method_signature/class_value_spec.rb +35 -0
- data/spec/verified_double/method_signature/instance_double_value_spec.rb +17 -0
- data/spec/verified_double/method_signature/instance_value_spec.rb +39 -0
- data/spec/verified_double/method_signature/recording_double_class_value_spec.rb +23 -0
- data/spec/verified_double/method_signature/rspec_double_spec.rb +14 -0
- data/spec/verified_double/method_signature/value_spec.rb +89 -0
- data/spec/verified_double/method_signature_spec.rb +16 -16
- data/spec/verified_double/method_signatures_report_spec.rb +14 -12
- data/spec/verified_double/parse_method_signature_spec.rb +3 -3
- data/spec/verified_double/recorded_method_signature_spec.rb +23 -0
- data/spec/verified_double/recording_double_spec.rb +103 -77
- data/spec/verified_double/stack_frame_spec.rb +15 -0
- data/spec/verified_double_spec.rb +1 -1
- metadata +29 -7
- data/lib/verified_double/method_signature_value.rb +0 -45
- data/spec/unit_helper.rb +0 -16
- data/spec/verified_double/method_signature_value_spec.rb +0 -126
@@ -0,0 +1,23 @@
|
|
1
|
+
require 'spec_helper'
|
2
|
+
|
3
|
+
describe VerifiedDouble::RecordedMethodSignature do
|
4
|
+
class Dummy
|
5
|
+
end
|
6
|
+
|
7
|
+
let(:stack_frame_string){ "./lib/verified_double/method_signature.rb:7:in `block in initialize'" }
|
8
|
+
|
9
|
+
let(:attributes){
|
10
|
+
{ class_name: 'Dummy',
|
11
|
+
method_operator: '#',
|
12
|
+
stack_frame: VerifiedDouble::StackFrame.new(stack_frame_string) } }
|
13
|
+
|
14
|
+
subject {
|
15
|
+
described_class.new(attributes).tap {|method_signature|
|
16
|
+
method_signature.method = 'do_something' } }
|
17
|
+
|
18
|
+
describe "#to_s" do
|
19
|
+
it "includes the stack frame" do
|
20
|
+
expect(subject.to_s).to include(stack_frame_string)
|
21
|
+
end
|
22
|
+
end
|
23
|
+
end
|
@@ -1,194 +1,194 @@
|
|
1
|
-
require '
|
1
|
+
require 'spec_helper'
|
2
2
|
require "verified_double/recording_double"
|
3
3
|
|
4
4
|
describe VerifiedDouble::RecordingDouble do
|
5
|
-
|
6
|
-
|
5
|
+
class Dummy
|
6
|
+
end
|
7
|
+
|
8
|
+
let(:class_name) { 'Dummy' }
|
9
|
+
let(:some_instance_double) { double(class_name) }
|
10
|
+
let(:some_class_double) { stub_const(class_name, Class.new) }
|
7
11
|
|
8
|
-
|
12
|
+
let(:recording_instance_double) { VerifiedDouble::RecordingDouble.new(some_instance_double, class_name) }
|
13
|
+
let(:recording_class_double) { VerifiedDouble::RecordingDouble.new(some_class_double, class_name) }
|
9
14
|
|
10
15
|
describe "#initialize" do
|
11
16
|
it "requires a double" do
|
12
|
-
expect(
|
17
|
+
expect(recording_instance_double.double).to eq(some_instance_double)
|
13
18
|
end
|
14
19
|
|
15
20
|
context "with method_stubs hash" do
|
16
21
|
let(:stubbed_method){ :some_method }
|
17
22
|
let(:assumed_output){ :some_output }
|
18
23
|
|
19
|
-
|
24
|
+
let(:recording_instance_double) {
|
25
|
+
VerifiedDouble::RecordingDouble.new(
|
26
|
+
some_instance_double,
|
27
|
+
class_name,
|
28
|
+
some_method: assumed_output) }
|
20
29
|
|
21
30
|
it "stubs the methods of the instance" do
|
22
|
-
expect(
|
31
|
+
expect(recording_instance_double.send(stubbed_method)).to eq(assumed_output)
|
23
32
|
end
|
24
33
|
end
|
25
34
|
end
|
26
35
|
|
27
36
|
it "delegates all unknown calls to its internal double" do
|
28
|
-
|
29
|
-
|
37
|
+
some_instance_double.should_receive(:do_something)
|
38
|
+
recording_instance_double.do_something
|
30
39
|
end
|
31
40
|
|
32
41
|
describe "#to_s" do
|
33
|
-
class Dummy
|
34
|
-
end
|
35
|
-
|
36
42
|
context "where the internal double is a class" do
|
37
|
-
|
38
|
-
let(:internal_double) { stub_const(class_name, Class.new) }
|
39
|
-
|
40
|
-
it { expect(subject.to_s).to eq("VerifiedDouble.of_class('#{class_name}')") }
|
43
|
+
it { expect(recording_class_double.to_s).to eq("VerifiedDouble.of_class('#{class_name}')") }
|
41
44
|
end
|
42
45
|
|
43
46
|
context "where the internal double is an instance" do
|
44
|
-
let(:
|
45
|
-
let(:internal_double) { double(class_name) }
|
47
|
+
let(:some_instance_double) { double(class_name) }
|
46
48
|
|
47
|
-
it { expect(
|
49
|
+
it { expect(recording_instance_double.to_s).to eq("VerifiedDouble.of_instance('#{class_name}')") }
|
48
50
|
end
|
49
51
|
end
|
50
52
|
|
51
53
|
describe "#inspect" do
|
52
54
|
it "is human-readable representation of the recording double, NOT the internal double" do
|
53
|
-
expect(
|
55
|
+
expect(recording_instance_double.inspect).to match("VerifiedDouble")
|
54
56
|
end
|
55
57
|
end
|
56
58
|
|
57
59
|
describe "#class_name" do
|
58
60
|
context "where the internal double is a double" do
|
59
61
|
it "is the name of the class represented by the double" do
|
60
|
-
|
61
|
-
subject = described_class.new(internal_double, 'Object')
|
62
|
-
expect(subject.class_name).to eq('Object')
|
62
|
+
expect(recording_instance_double.class_name).to eq(class_name)
|
63
63
|
end
|
64
64
|
end
|
65
65
|
|
66
66
|
context "where the internal double is a stub const" do
|
67
67
|
it "is the name of the class represented by the class double" do
|
68
|
-
|
69
|
-
subject = described_class.new(internal_double, 'Object')
|
70
|
-
expect(subject.class_name).to eq('Object')
|
68
|
+
expect(recording_class_double.class_name).to eq(class_name)
|
71
69
|
end
|
72
70
|
end
|
73
71
|
end
|
74
72
|
|
75
73
|
describe "#class_double?" do
|
76
74
|
it "should be true if the internal double is a class double" do
|
77
|
-
|
78
|
-
subject = described_class.new(internal_double, 'Object')
|
79
|
-
expect(subject).to_not be_class_double
|
75
|
+
expect(recording_instance_double).to_not be_class_double
|
80
76
|
end
|
81
77
|
|
82
78
|
it "should be false if the internal double is not an class double" do
|
83
|
-
|
84
|
-
subject = described_class.new(internal_double, 'Object')
|
85
|
-
expect(subject).to be_class_double
|
79
|
+
expect(recording_class_double).to be_class_double
|
86
80
|
end
|
87
81
|
end
|
88
82
|
|
89
83
|
describe "#method_operator" do
|
90
|
-
context "when the
|
91
|
-
let(:internal_double) { double(class_name) }
|
92
|
-
|
93
|
-
subject { VerifiedDouble::RecordingDouble.new(internal_double, class_name) }
|
94
|
-
|
84
|
+
context "when the recording_instance_double wraps an instance double" do
|
95
85
|
it "is #" do
|
96
|
-
expect(
|
86
|
+
expect(recording_instance_double.method_operator).to eq("#")
|
97
87
|
end
|
98
88
|
end
|
99
89
|
|
100
|
-
context "when the
|
101
|
-
let(:internal_double) { stub_const(class_name, Class.new) }
|
102
|
-
|
103
|
-
subject { VerifiedDouble::RecordingDouble.new(internal_double, class_name) }
|
104
|
-
|
90
|
+
context "when the recording_instance_double wraps a class double" do
|
105
91
|
it "is '.'" do
|
106
|
-
expect(
|
92
|
+
expect(recording_class_double.method_operator).to eq(".")
|
107
93
|
end
|
108
94
|
end
|
109
95
|
end
|
110
96
|
|
111
97
|
describe "#should_receive(method)" do
|
112
98
|
it "appends a new method signature with the method to the recording double's method signatures" do
|
113
|
-
expect(
|
99
|
+
expect(recording_instance_double.method_signatures).to be_empty
|
100
|
+
|
101
|
+
recording_instance_double.should_receive(:fake_to_s)
|
102
|
+
recording_instance_double.should_receive(:fake_inspect)
|
114
103
|
|
115
|
-
|
116
|
-
subject.should_receive(:fake_inspect)
|
104
|
+
expect(recording_instance_double.method_signatures.map(&:method)).to eq(['fake_to_s', 'fake_inspect'])
|
117
105
|
|
118
|
-
|
106
|
+
recording_instance_double.fake_to_s
|
107
|
+
recording_instance_double.fake_inspect
|
108
|
+
end
|
119
109
|
|
120
|
-
|
121
|
-
|
110
|
+
it "records the stack frames of the recording double's caller" do
|
111
|
+
recording_instance_double.should_receive(:fake_to_s)
|
112
|
+
recording_instance_double.fake_to_s
|
113
|
+
expect(recording_instance_double.method_signatures.first.stack_frame.to_s)
|
114
|
+
.to include("spec/verified_double/recording_double_spec.rb")
|
122
115
|
end
|
123
116
|
end
|
124
117
|
|
125
118
|
describe "#stub(method)" do
|
126
119
|
it "appends a new method signature with the method to the recording double's method signatures" do
|
127
|
-
expect(
|
120
|
+
expect(recording_instance_double.method_signatures).to be_empty
|
121
|
+
|
122
|
+
recording_instance_double.stub(:fake_to_s)
|
123
|
+
recording_instance_double.stub(:fake_inspect)
|
128
124
|
|
129
|
-
|
130
|
-
|
125
|
+
expect(recording_instance_double.method_signatures.map(&:method)).to eq(['fake_to_s', 'fake_inspect'])
|
126
|
+
end
|
127
|
+
|
128
|
+
it "records the stack frames of the recording double's caller" do
|
129
|
+
recording_instance_double.stub(:fake_to_s)
|
131
130
|
|
132
|
-
expect(
|
131
|
+
expect(recording_instance_double.method_signatures.first.stack_frame.to_s)
|
132
|
+
.to include("spec/verified_double/recording_double_spec.rb")
|
133
133
|
end
|
134
134
|
end
|
135
135
|
|
136
136
|
describe "#with(*args)" do
|
137
137
|
it "sets the args of the last method signature" do
|
138
|
-
|
138
|
+
recording_instance_double.should_receive(:fake_to_s).with(:arg_1, :arg_2)
|
139
139
|
|
140
|
-
expect(
|
141
|
-
expect(
|
140
|
+
expect(recording_instance_double.method_signatures[0].args).to be_all{|arg| arg.is_a?(VerifiedDouble::MethodSignature::Value) }
|
141
|
+
expect(recording_instance_double.method_signatures[0].args.map(&:content)).to eq([:arg_1, :arg_2])
|
142
142
|
|
143
|
-
|
143
|
+
recording_instance_double.fake_to_s(:arg_1, :arg_2)
|
144
144
|
end
|
145
145
|
end
|
146
146
|
|
147
147
|
describe "#and_return(return_value)" do
|
148
148
|
it "sets the return value of the last method signature" do
|
149
|
-
|
149
|
+
recording_instance_double.should_receive(:fake_to_s).with(:arg_1, :arg_2).and_return(:return_value)
|
150
150
|
|
151
|
-
return_values =
|
151
|
+
return_values = recording_instance_double.method_signatures[0].return_values
|
152
152
|
expect(return_values).to have(1).return_value
|
153
|
-
expect(return_values.first).to be_a(VerifiedDouble::
|
154
|
-
expect(return_values.first.
|
153
|
+
expect(return_values.first).to be_a(VerifiedDouble::MethodSignature::Value)
|
154
|
+
expect(return_values.first.content).to eq(:return_value)
|
155
155
|
|
156
|
-
|
156
|
+
recording_instance_double.fake_to_s(:arg_1, :arg_2)
|
157
157
|
end
|
158
158
|
end
|
159
159
|
|
160
160
|
describe "#once" do
|
161
161
|
it "is relayed to the internal double and returns the recording double" do
|
162
|
-
expect(
|
163
|
-
|
162
|
+
expect(recording_instance_double.should_receive(:fake_to_s).once).to be_a(described_class)
|
163
|
+
recording_instance_double.fake_to_s
|
164
164
|
end
|
165
165
|
end
|
166
166
|
|
167
167
|
describe "#twice" do
|
168
168
|
it "is relayed to the internal double and returns the recording double" do
|
169
|
-
expect(
|
170
|
-
|
171
|
-
|
169
|
+
expect(recording_instance_double.should_receive(:fake_to_s).twice).to be_a(described_class)
|
170
|
+
recording_instance_double.fake_to_s
|
171
|
+
recording_instance_double.fake_to_s
|
172
172
|
end
|
173
173
|
end
|
174
174
|
|
175
175
|
describe "#at_least" do
|
176
176
|
it "is relayed to the internal double and returns the recording double" do
|
177
|
-
expect(
|
178
|
-
|
177
|
+
expect(recording_instance_double.should_receive(:fake_to_s).at_least(:once)).to be_a(described_class)
|
178
|
+
recording_instance_double.fake_to_s
|
179
179
|
end
|
180
180
|
end
|
181
181
|
|
182
182
|
describe "#at_most" do
|
183
183
|
it "is relayed to the internal double and returns the recording double" do
|
184
|
-
expect(
|
185
|
-
|
184
|
+
expect(recording_instance_double.should_receive(:fake_to_s).at_most(:once)).to be_a(described_class)
|
185
|
+
recording_instance_double.fake_to_s
|
186
186
|
end
|
187
187
|
end
|
188
188
|
|
189
189
|
describe "#any_number_of_times" do
|
190
190
|
it "is relayed to the internal double and returns the recording double" do
|
191
|
-
expect(
|
191
|
+
expect(recording_instance_double.should_receive(:fake_to_s).any_number_of_times).to be_a(described_class)
|
192
192
|
end
|
193
193
|
end
|
194
194
|
|
@@ -196,15 +196,41 @@ describe VerifiedDouble::RecordingDouble do
|
|
196
196
|
let(:some_error){ Exception.new }
|
197
197
|
|
198
198
|
it "is relayed to the internal double and returns the recording double" do
|
199
|
-
expect(
|
200
|
-
expect {
|
199
|
+
expect(recording_instance_double.should_receive(:fake_to_s).and_raise(some_error)).to be_a(described_class)
|
200
|
+
expect { recording_instance_double.fake_to_s }.to raise_error(some_error)
|
201
201
|
end
|
202
202
|
end
|
203
203
|
|
204
204
|
describe "#and_raise" do
|
205
205
|
it "is relayed to the internal double and returns the recording double" do
|
206
|
-
expect(
|
207
|
-
expect {
|
206
|
+
expect(recording_instance_double.should_receive(:fake_to_s).and_throw(:some_error)).to be_a(described_class)
|
207
|
+
expect { recording_instance_double.fake_to_s }.to throw_symbol(:some_error)
|
208
|
+
end
|
209
|
+
end
|
210
|
+
|
211
|
+
describe "#class" do
|
212
|
+
context "where the internal double is an instance" do
|
213
|
+
it "is the constant matching the class name" do
|
214
|
+
expect(recording_instance_double.class).to eq(Dummy)
|
215
|
+
end
|
216
|
+
end
|
217
|
+
|
218
|
+
context "where the internal double is a class" do
|
219
|
+
it { expect(recording_class_double.class).to eq(Class) }
|
220
|
+
end
|
221
|
+
end
|
222
|
+
|
223
|
+
describe "#doubled_class" do
|
224
|
+
context "where the internal double is an instance" do
|
225
|
+
it "is the constant matching the class name" do
|
226
|
+
expect(recording_instance_double.doubled_class).to eq(Dummy)
|
227
|
+
end
|
228
|
+
end
|
229
|
+
|
230
|
+
context "where the internal double is a class" do
|
231
|
+
it "is the constant matching the class name" do
|
232
|
+
expect(recording_class_double.doubled_class).to eq(Dummy)
|
233
|
+
end
|
208
234
|
end
|
209
235
|
end
|
210
236
|
end
|
@@ -0,0 +1,15 @@
|
|
1
|
+
require 'spec_helper'
|
2
|
+
|
3
|
+
describe VerifiedDouble::RecordedMethodSignature do
|
4
|
+
let(:relative_stack_frame_string){ "spec/verified_double/method_signatures_report_spec.rb:31:in `block (4 levels) in <top (required)>'" }
|
5
|
+
|
6
|
+
let(:stack_frame_string){ "/verified_double/#{relative_stack_frame_string}" }
|
7
|
+
|
8
|
+
subject { VerifiedDouble::StackFrame.new(stack_frame_string) }
|
9
|
+
|
10
|
+
describe "#to_s" do
|
11
|
+
it "strips the parent dir of spec from the string" do
|
12
|
+
expect(subject.to_s).to eq("./#{relative_stack_frame_string}")
|
13
|
+
end
|
14
|
+
end
|
15
|
+
end
|
metadata
CHANGED
@@ -2,14 +2,14 @@
|
|
2
2
|
name: verified_double
|
3
3
|
version: !ruby/object:Gem::Version
|
4
4
|
prerelease:
|
5
|
-
version: 0.
|
5
|
+
version: 0.2.0
|
6
6
|
platform: ruby
|
7
7
|
authors:
|
8
8
|
- George Mendoza
|
9
9
|
autorequire:
|
10
10
|
bindir: bin
|
11
11
|
cert_chain: []
|
12
|
-
date: 2013-06-
|
12
|
+
date: 2013-06-30 00:00:00.000000000 Z
|
13
13
|
dependencies:
|
14
14
|
- !ruby/object:Gem::Dependency
|
15
15
|
type: :runtime
|
@@ -118,20 +118,35 @@ files:
|
|
118
118
|
- lib/verified_double/boolean.rb
|
119
119
|
- lib/verified_double/matchers.rb
|
120
120
|
- lib/verified_double/method_signature.rb
|
121
|
-
- lib/verified_double/
|
121
|
+
- lib/verified_double/method_signature/boolean_value.rb
|
122
|
+
- lib/verified_double/method_signature/class_value.rb
|
123
|
+
- lib/verified_double/method_signature/instance_double_value.rb
|
124
|
+
- lib/verified_double/method_signature/instance_value.rb
|
125
|
+
- lib/verified_double/method_signature/recording_double_class_value.rb
|
126
|
+
- lib/verified_double/method_signature/rspec_double_value.rb
|
127
|
+
- lib/verified_double/method_signature/value.rb
|
122
128
|
- lib/verified_double/method_signatures_report.rb
|
123
129
|
- lib/verified_double/parse_method_signature.rb
|
130
|
+
- lib/verified_double/recorded_method_signature.rb
|
124
131
|
- lib/verified_double/recording_double.rb
|
125
132
|
- lib/verified_double/relays_to_internal_double_returning_self.rb
|
133
|
+
- lib/verified_double/stack_frame.rb
|
126
134
|
- lib/verified_double/version.rb
|
127
135
|
- spec/spec_helper.rb
|
128
|
-
- spec/unit_helper.rb
|
129
136
|
- spec/verified_double/matchers_spec.rb
|
137
|
+
- spec/verified_double/method_signature/boolean_value_spec.rb
|
138
|
+
- spec/verified_double/method_signature/class_value_spec.rb
|
139
|
+
- spec/verified_double/method_signature/instance_double_value_spec.rb
|
140
|
+
- spec/verified_double/method_signature/instance_value_spec.rb
|
141
|
+
- spec/verified_double/method_signature/recording_double_class_value_spec.rb
|
142
|
+
- spec/verified_double/method_signature/rspec_double_spec.rb
|
143
|
+
- spec/verified_double/method_signature/value_spec.rb
|
130
144
|
- spec/verified_double/method_signature_spec.rb
|
131
|
-
- spec/verified_double/method_signature_value_spec.rb
|
132
145
|
- spec/verified_double/method_signatures_report_spec.rb
|
133
146
|
- spec/verified_double/parse_method_signature_spec.rb
|
147
|
+
- spec/verified_double/recorded_method_signature_spec.rb
|
134
148
|
- spec/verified_double/recording_double_spec.rb
|
149
|
+
- spec/verified_double/stack_frame_spec.rb
|
135
150
|
- spec/verified_double_spec.rb
|
136
151
|
- verified_double.gemspec
|
137
152
|
homepage: https://www.relishapp.com/gsmendoza/verified-double
|
@@ -170,12 +185,19 @@ test_files:
|
|
170
185
|
- features/verified_mocks.feature
|
171
186
|
- features/verified_stubs.feature
|
172
187
|
- spec/spec_helper.rb
|
173
|
-
- spec/unit_helper.rb
|
174
188
|
- spec/verified_double/matchers_spec.rb
|
189
|
+
- spec/verified_double/method_signature/boolean_value_spec.rb
|
190
|
+
- spec/verified_double/method_signature/class_value_spec.rb
|
191
|
+
- spec/verified_double/method_signature/instance_double_value_spec.rb
|
192
|
+
- spec/verified_double/method_signature/instance_value_spec.rb
|
193
|
+
- spec/verified_double/method_signature/recording_double_class_value_spec.rb
|
194
|
+
- spec/verified_double/method_signature/rspec_double_spec.rb
|
195
|
+
- spec/verified_double/method_signature/value_spec.rb
|
175
196
|
- spec/verified_double/method_signature_spec.rb
|
176
|
-
- spec/verified_double/method_signature_value_spec.rb
|
177
197
|
- spec/verified_double/method_signatures_report_spec.rb
|
178
198
|
- spec/verified_double/parse_method_signature_spec.rb
|
199
|
+
- spec/verified_double/recorded_method_signature_spec.rb
|
179
200
|
- spec/verified_double/recording_double_spec.rb
|
201
|
+
- spec/verified_double/stack_frame_spec.rb
|
180
202
|
- spec/verified_double_spec.rb
|
181
203
|
has_rdoc:
|
@@ -1,45 +0,0 @@
|
|
1
|
-
module VerifiedDouble
|
2
|
-
class MethodSignatureValue
|
3
|
-
attr_reader :value
|
4
|
-
|
5
|
-
def initialize(value)
|
6
|
-
@value = value
|
7
|
-
end
|
8
|
-
|
9
|
-
def accepts?(other)
|
10
|
-
if self.value.is_a?(Class) || ! other.value.is_a?(Class)
|
11
|
-
self.value == other.value
|
12
|
-
else
|
13
|
-
self.modified_class.ancestors.include?(other.value)
|
14
|
-
end
|
15
|
-
end
|
16
|
-
|
17
|
-
def as_instance
|
18
|
-
if self.value.is_a?(Class)
|
19
|
-
begin
|
20
|
-
value.new
|
21
|
-
rescue NoMethodError
|
22
|
-
Object.new
|
23
|
-
end
|
24
|
-
else
|
25
|
-
self.value
|
26
|
-
end
|
27
|
-
end
|
28
|
-
|
29
|
-
def modified_class
|
30
|
-
if value.is_a?(RSpec::Mocks::Mock)
|
31
|
-
value.instance_variable_get('@name').constantize
|
32
|
-
elsif value.is_a?(VerifiedDouble::RecordingDouble)
|
33
|
-
value.class_name.constantize
|
34
|
-
elsif value == true or value == false
|
35
|
-
VerifiedDouble::Boolean
|
36
|
-
else
|
37
|
-
value.class
|
38
|
-
end
|
39
|
-
end
|
40
|
-
|
41
|
-
def recommended_value
|
42
|
-
self.class.new(self.modified_class)
|
43
|
-
end
|
44
|
-
end
|
45
|
-
end
|