verified_double 0.1.1 → 0.2.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/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
data/spec/spec_helper.rb
CHANGED
@@ -0,0 +1,11 @@
|
|
1
|
+
require 'spec_helper'
|
2
|
+
|
3
|
+
describe VerifiedDouble::MethodSignature::BooleanValue do
|
4
|
+
subject { described_class.new(true) }
|
5
|
+
|
6
|
+
describe "#content_class" do
|
7
|
+
it "should be VerifiedDouble::Boolean" do
|
8
|
+
expect(subject.content_class).to eq(VerifiedDouble::Boolean)
|
9
|
+
end
|
10
|
+
end
|
11
|
+
end
|
@@ -0,0 +1,35 @@
|
|
1
|
+
require 'spec_helper'
|
2
|
+
|
3
|
+
describe VerifiedDouble::MethodSignature::ClassValue do
|
4
|
+
subject { described_class.new(String) }
|
5
|
+
|
6
|
+
describe "#belongs_to?(other)" do
|
7
|
+
context "where the value and other have the same content" do
|
8
|
+
let(:other) { described_class.new(String) }
|
9
|
+
it { expect(subject.belongs_to?(other)).to be_true }
|
10
|
+
end
|
11
|
+
|
12
|
+
context "where the value and other do not have the same content" do
|
13
|
+
let(:other) { described_class.new(Object) }
|
14
|
+
it { expect(subject.belongs_to?(other)).to be_false }
|
15
|
+
end
|
16
|
+
end
|
17
|
+
|
18
|
+
describe "#content_as_instance" do
|
19
|
+
context "where the value is a class which can be initialized" do
|
20
|
+
subject { described_class.new(String) }
|
21
|
+
|
22
|
+
it "returns the initialized instance of the value " do
|
23
|
+
expect(subject.content_as_instance).to eq(String.new)
|
24
|
+
end
|
25
|
+
end
|
26
|
+
|
27
|
+
context "where the value is a class which cannot be initialized" do
|
28
|
+
subject { described_class.new(Integer) }
|
29
|
+
|
30
|
+
it "returns an object" do
|
31
|
+
expect(subject.content_as_instance).to be_an(Object)
|
32
|
+
end
|
33
|
+
end
|
34
|
+
end
|
35
|
+
end
|
@@ -0,0 +1,17 @@
|
|
1
|
+
require 'spec_helper'
|
2
|
+
|
3
|
+
describe VerifiedDouble::MethodSignature::InstanceDoubleValue do
|
4
|
+
class Item
|
5
|
+
end
|
6
|
+
|
7
|
+
let(:class_name){ 'Item' }
|
8
|
+
let(:some_instance_double){ double(class_name) }
|
9
|
+
let(:recording_instance_double) { VerifiedDouble::RecordingDouble.new(some_instance_double, class_name) }
|
10
|
+
subject { described_class.new(recording_instance_double) }
|
11
|
+
|
12
|
+
describe "#content_as_instance" do
|
13
|
+
it "is the equivalent content_as_instance of the content's class" do
|
14
|
+
expect(subject.content_as_instance).to be_a(Item)
|
15
|
+
end
|
16
|
+
end
|
17
|
+
end
|
@@ -0,0 +1,39 @@
|
|
1
|
+
require 'spec_helper'
|
2
|
+
|
3
|
+
describe VerifiedDouble::MethodSignature::InstanceValue do
|
4
|
+
describe "#belongs_to?(other)" do
|
5
|
+
subject { this.belongs_to?(other) }
|
6
|
+
|
7
|
+
context "where the other value is an instance and self's value matches it" do
|
8
|
+
let(:this){ described_class.new(1) }
|
9
|
+
let(:other){ described_class.new(1) }
|
10
|
+
it { expect(subject).to be_true }
|
11
|
+
end
|
12
|
+
|
13
|
+
context "where the other value is an instance and self's value does not match it" do
|
14
|
+
let(:this){ described_class.new(2) }
|
15
|
+
let(:other){ described_class.new(1) }
|
16
|
+
it { expect(subject).to be_false }
|
17
|
+
end
|
18
|
+
|
19
|
+
context "where self is an instance and the other's class is an ancestor of self's modified class" do
|
20
|
+
let(:this){ described_class.new(1) }
|
21
|
+
let(:other){ VerifiedDouble::MethodSignature::ClassValue.new(Object) }
|
22
|
+
it { expect(subject).to be_true }
|
23
|
+
end
|
24
|
+
|
25
|
+
context "where self is an instance and the other's class is not an ancestor of self's modified class" do
|
26
|
+
let(:this){ described_class.new(1) }
|
27
|
+
let(:other){ VerifiedDouble::MethodSignature::ClassValue.new(Float) }
|
28
|
+
it { expect(subject).to be_false }
|
29
|
+
end
|
30
|
+
end
|
31
|
+
|
32
|
+
describe "#content_as_instance" do
|
33
|
+
subject { described_class.new(:some_value) }
|
34
|
+
|
35
|
+
it "returns the value" do
|
36
|
+
expect(subject.content_as_instance).to eq(:some_value)
|
37
|
+
end
|
38
|
+
end
|
39
|
+
end
|
@@ -0,0 +1,23 @@
|
|
1
|
+
require 'spec_helper'
|
2
|
+
|
3
|
+
describe VerifiedDouble::MethodSignature::RecordingDoubleClassValue do
|
4
|
+
class Dummy
|
5
|
+
end
|
6
|
+
|
7
|
+
let(:class_name) { 'Dummy' }
|
8
|
+
let(:some_class_double) { stub_const(class_name, Class.new) }
|
9
|
+
let(:recording_class_double) { VerifiedDouble::RecordingDouble.new(some_class_double, class_name) }
|
10
|
+
|
11
|
+
subject { described_class.new(recording_class_double) }
|
12
|
+
|
13
|
+
describe "#belongs_to(other)" do
|
14
|
+
context "where the doubled class of the recording double belongs to the other value" do
|
15
|
+
it { expect(subject.belongs_to?(VerifiedDouble::MethodSignature::ClassValue.new(Dummy))).to be_true }
|
16
|
+
end
|
17
|
+
|
18
|
+
context "where the doubled class of the recording double does not belong to the other value" do
|
19
|
+
it { expect(subject.belongs_to?(VerifiedDouble::MethodSignature::ClassValue.new(Object))).to be_false }
|
20
|
+
end
|
21
|
+
end
|
22
|
+
|
23
|
+
end
|
@@ -0,0 +1,14 @@
|
|
1
|
+
require 'spec_helper'
|
2
|
+
|
3
|
+
describe VerifiedDouble::MethodSignature::RspecDoubleValue do
|
4
|
+
let(:rspec_double) { double('Object') }
|
5
|
+
subject { described_class.new(rspec_double) }
|
6
|
+
|
7
|
+
describe "#content_class" do
|
8
|
+
context "where the value is a double" do
|
9
|
+
it "is the class represented by the class_name of the recording double" do
|
10
|
+
expect(subject.content_class).to eq(Object)
|
11
|
+
end
|
12
|
+
end
|
13
|
+
end
|
14
|
+
end
|
@@ -0,0 +1,89 @@
|
|
1
|
+
require 'spec_helper'
|
2
|
+
require 'verified_double/method_signature/value'
|
3
|
+
|
4
|
+
describe VerifiedDouble::MethodSignature::Value do
|
5
|
+
class Dummy
|
6
|
+
end
|
7
|
+
|
8
|
+
let(:class_name){ 'Dummy' }
|
9
|
+
|
10
|
+
let(:value){ :some_value }
|
11
|
+
|
12
|
+
describe ".from(content)" do
|
13
|
+
subject { described_class.from(content) }
|
14
|
+
|
15
|
+
context "where content is true" do
|
16
|
+
let(:content) { true }
|
17
|
+
it { expect(subject).to be_a(VerifiedDouble::MethodSignature::BooleanValue) }
|
18
|
+
end
|
19
|
+
|
20
|
+
context "where content is false" do
|
21
|
+
let(:content) { false }
|
22
|
+
it { expect(subject).to be_a(VerifiedDouble::MethodSignature::BooleanValue) }
|
23
|
+
end
|
24
|
+
|
25
|
+
context "where content is a class" do
|
26
|
+
let(:content) { String }
|
27
|
+
it { expect(subject).to be_a(VerifiedDouble::MethodSignature::ClassValue) }
|
28
|
+
end
|
29
|
+
|
30
|
+
context "where content is a module" do
|
31
|
+
let(:content) { VerifiedDouble }
|
32
|
+
it { expect(subject).to be_a(VerifiedDouble::MethodSignature::ClassValue) }
|
33
|
+
end
|
34
|
+
|
35
|
+
context "where content is an rspec mock" do
|
36
|
+
let(:content) { double(:stuff) }
|
37
|
+
it { expect(subject).to be_a(VerifiedDouble::MethodSignature::RspecDoubleValue) }
|
38
|
+
end
|
39
|
+
|
40
|
+
context "where content is an class recording double" do
|
41
|
+
let(:class_double){ stub_const(class_name, Class.new, transfer_nested_constants: true) }
|
42
|
+
let(:content) { VerifiedDouble::RecordingDouble.new(class_double, class_name) }
|
43
|
+
|
44
|
+
it { expect(subject).to be_a(VerifiedDouble::MethodSignature::RecordingDoubleClassValue) }
|
45
|
+
end
|
46
|
+
|
47
|
+
context "where content is an instance recording double" do
|
48
|
+
let(:some_instance_double){ double('Dummy') }
|
49
|
+
let(:content) { VerifiedDouble::RecordingDouble.new(some_instance_double, class_name) }
|
50
|
+
|
51
|
+
it { expect(subject).to be_a(VerifiedDouble::MethodSignature::InstanceDoubleValue) }
|
52
|
+
end
|
53
|
+
|
54
|
+
context "where content is an instance" do
|
55
|
+
let(:content) { :some_symbol }
|
56
|
+
|
57
|
+
it { expect(subject).to be_a(VerifiedDouble::MethodSignature::InstanceValue) }
|
58
|
+
end
|
59
|
+
end
|
60
|
+
|
61
|
+
describe "#content_class" do
|
62
|
+
subject { method_signature_value.content_class }
|
63
|
+
|
64
|
+
context "where the value is recording double" do
|
65
|
+
let(:recording_double){ VerifiedDouble.of_instance('Object') }
|
66
|
+
let(:method_signature_value) { described_class.new(recording_double) }
|
67
|
+
|
68
|
+
it "is the class represented by the class_name of the recording double" do
|
69
|
+
expect(subject).to eq(Object)
|
70
|
+
end
|
71
|
+
end
|
72
|
+
|
73
|
+
context "where the value is not true or false" do
|
74
|
+
let(:method_signature_value) { described_class.new(1) }
|
75
|
+
it "is the class of the value" do
|
76
|
+
expect(subject).to eq(Fixnum)
|
77
|
+
end
|
78
|
+
end
|
79
|
+
end
|
80
|
+
|
81
|
+
describe "#recommended_value" do
|
82
|
+
subject { described_class.new(value) }
|
83
|
+
|
84
|
+
it "is a version of self that will be recommended to users to verify" do
|
85
|
+
expect(subject.recommended_value.content).to eq(subject.content_class)
|
86
|
+
expect(subject.recommended_value.content).to_not eq(subject)
|
87
|
+
end
|
88
|
+
end
|
89
|
+
end
|
@@ -1,4 +1,4 @@
|
|
1
|
-
require '
|
1
|
+
require 'spec_helper'
|
2
2
|
require 'verified_double/method_signature'
|
3
3
|
|
4
4
|
describe VerifiedDouble::MethodSignature do
|
@@ -21,7 +21,7 @@ describe VerifiedDouble::MethodSignature do
|
|
21
21
|
|
22
22
|
context "when there are args" do
|
23
23
|
it "includes the arg values in the result" do
|
24
|
-
subject.args = [VerifiedDouble::
|
24
|
+
subject.args = [VerifiedDouble::MethodSignature::Value.from(1), VerifiedDouble::MethodSignature::Value.from({})]
|
25
25
|
expect(subject.to_s).to eq("Dummy#do_something(1, {})")
|
26
26
|
end
|
27
27
|
end
|
@@ -35,14 +35,14 @@ describe VerifiedDouble::MethodSignature do
|
|
35
35
|
|
36
36
|
context "when there is a nil arg" do
|
37
37
|
it "displays nil for the arg of the result" do
|
38
|
-
subject.args = [VerifiedDouble::
|
38
|
+
subject.args = [VerifiedDouble::MethodSignature::Value.from(nil)]
|
39
39
|
expect(subject.to_s).to eq("Dummy#do_something(nil)")
|
40
40
|
end
|
41
41
|
end
|
42
42
|
|
43
43
|
context "where there is a return value" do
|
44
44
|
it "displays the return value" do
|
45
|
-
subject.return_values = [VerifiedDouble::
|
45
|
+
subject.return_values = [VerifiedDouble::MethodSignature::Value.from(true)]
|
46
46
|
expect(subject.to_s).to eq("Dummy#do_something()=>true")
|
47
47
|
end
|
48
48
|
end
|
@@ -70,16 +70,16 @@ describe VerifiedDouble::MethodSignature do
|
|
70
70
|
it { expect([method_signature, method_signature_with_same_to_s].uniq == [method_signature]).to be_true }
|
71
71
|
end
|
72
72
|
|
73
|
-
describe "#
|
73
|
+
describe "#belongs_to?(other)" do
|
74
74
|
let(:method_signature){
|
75
75
|
described_class.new(
|
76
76
|
class_name: 'Dummy',
|
77
77
|
method_operator: '.',
|
78
78
|
method: 'find',
|
79
|
-
args: [VerifiedDouble::
|
80
|
-
return_values: [VerifiedDouble::
|
79
|
+
args: [VerifiedDouble::MethodSignature::Value.from(1)],
|
80
|
+
return_values: [VerifiedDouble::MethodSignature::Value.from(Dummy.new)]) }
|
81
81
|
|
82
|
-
subject { method_signature.
|
82
|
+
subject { method_signature.belongs_to?(other) }
|
83
83
|
|
84
84
|
context "where self has same attributes as other" do
|
85
85
|
let(:other){ method_signature.clone }
|
@@ -104,7 +104,7 @@ describe VerifiedDouble::MethodSignature do
|
|
104
104
|
context "where self and other have different number of args" do
|
105
105
|
let(:other){
|
106
106
|
method_signature.clone.tap{|ms|
|
107
|
-
ms.args = [VerifiedDouble::
|
107
|
+
ms.args = [VerifiedDouble::MethodSignature::Value.from(1), VerifiedDouble::MethodSignature::Value.from(2)] } }
|
108
108
|
|
109
109
|
it { expect(subject).to be_false }
|
110
110
|
end
|
@@ -112,7 +112,7 @@ describe VerifiedDouble::MethodSignature do
|
|
112
112
|
context "where not all of self's args accept the args of other" do
|
113
113
|
let(:other){
|
114
114
|
method_signature.clone.tap{|ms|
|
115
|
-
ms.args = [VerifiedDouble::
|
115
|
+
ms.args = [VerifiedDouble::MethodSignature::Value.from(2)] } }
|
116
116
|
|
117
117
|
it { expect(subject).to be_false }
|
118
118
|
end
|
@@ -120,7 +120,7 @@ describe VerifiedDouble::MethodSignature do
|
|
120
120
|
context "where self and other have different number of return values" do
|
121
121
|
let(:other){
|
122
122
|
method_signature.clone.tap{|ms|
|
123
|
-
ms.return_values = [VerifiedDouble::
|
123
|
+
ms.return_values = [VerifiedDouble::MethodSignature::Value.from(1), VerifiedDouble::MethodSignature::Value.from(2)] } }
|
124
124
|
|
125
125
|
it { expect(subject).to be_false }
|
126
126
|
end
|
@@ -128,7 +128,7 @@ describe VerifiedDouble::MethodSignature do
|
|
128
128
|
context "where not all of self's return values accept the return values of other" do
|
129
129
|
let(:other){
|
130
130
|
method_signature.clone.tap{|ms|
|
131
|
-
ms.return_values = [VerifiedDouble::
|
131
|
+
ms.return_values = [VerifiedDouble::MethodSignature::Value.from(Symbol)] } }
|
132
132
|
|
133
133
|
it { expect(subject).to be_false }
|
134
134
|
end
|
@@ -140,14 +140,14 @@ describe VerifiedDouble::MethodSignature do
|
|
140
140
|
class_name: 'Dummy',
|
141
141
|
method_operator: '.',
|
142
142
|
method: 'find',
|
143
|
-
args: [VerifiedDouble::
|
144
|
-
return_values: [VerifiedDouble::
|
143
|
+
args: [VerifiedDouble::MethodSignature::Value.from(1)],
|
144
|
+
return_values: [VerifiedDouble::MethodSignature::Value.from(Dummy.new)]) }
|
145
145
|
|
146
146
|
subject { method_signature.recommended_verified_signature }
|
147
147
|
|
148
148
|
it "is a method signature that is recommended for the user to verify" do
|
149
|
-
expect(subject.args[0].
|
150
|
-
expect(subject.return_values[0].
|
149
|
+
expect(subject.args[0].content).to eq(method_signature.args[0].recommended_value.content)
|
150
|
+
expect(subject.return_values[0].content).to eq(method_signature.return_values[0].recommended_value.content)
|
151
151
|
end
|
152
152
|
end
|
153
153
|
end
|
@@ -1,4 +1,4 @@
|
|
1
|
-
require '
|
1
|
+
require 'spec_helper'
|
2
2
|
require 'verified_double'
|
3
3
|
require 'verified_double/method_signatures_report'
|
4
4
|
|
@@ -114,7 +114,7 @@ describe VerifiedDouble::MethodSignaturesReport do
|
|
114
114
|
class_name: 'Person',
|
115
115
|
method: 'find',
|
116
116
|
method_operator: '.',
|
117
|
-
args: [VerifiedDouble::
|
117
|
+
args: [VerifiedDouble::MethodSignature::Value.from(1)]) }
|
118
118
|
|
119
119
|
let(:registered_signature_without_match) {
|
120
120
|
VerifiedDouble::MethodSignature.new(
|
@@ -127,11 +127,11 @@ describe VerifiedDouble::MethodSignaturesReport do
|
|
127
127
|
class_name: 'Person',
|
128
128
|
method: 'find',
|
129
129
|
method_operator: '.',
|
130
|
-
args: [VerifiedDouble::
|
130
|
+
args: [VerifiedDouble::MethodSignature::Value.from(Object)]) }
|
131
131
|
|
132
132
|
it "retains registered signatures that cannot accept any of the verified_signatures" do
|
133
|
-
expect(registered_signature.
|
134
|
-
expect(registered_signature_without_match.
|
133
|
+
expect(registered_signature.belongs_to?(verified_signature)).to be_true
|
134
|
+
expect(registered_signature_without_match.belongs_to?(verified_signature)).to be_false
|
135
135
|
|
136
136
|
subject.registered_signatures = [registered_signature, registered_signature_without_match]
|
137
137
|
subject.verified_signatures = [verified_signature]
|
@@ -151,14 +151,14 @@ describe VerifiedDouble::MethodSignaturesReport do
|
|
151
151
|
class_name: 'Dummy',
|
152
152
|
method_operator: '.',
|
153
153
|
method: 'find',
|
154
|
-
args: [VerifiedDouble::
|
155
|
-
return_values: [VerifiedDouble::
|
154
|
+
args: [VerifiedDouble::MethodSignature::Value.from(1)],
|
155
|
+
return_values: [VerifiedDouble::MethodSignature::Value.from(Dummy.new)]),
|
156
156
|
VerifiedDouble::MethodSignature.new(
|
157
157
|
class_name: 'Dummy',
|
158
158
|
method_operator: '.',
|
159
159
|
method: 'where',
|
160
|
-
args: [VerifiedDouble::
|
161
|
-
return_values: [VerifiedDouble::
|
160
|
+
args: [VerifiedDouble::MethodSignature::Value.from(id: 1)],
|
161
|
+
return_values: [VerifiedDouble::MethodSignature::Value.from(Dummy.new)]) ] }
|
162
162
|
|
163
163
|
context "where there are no unverified_signatures" do
|
164
164
|
it "should not output anything" do
|
@@ -173,11 +173,13 @@ describe VerifiedDouble::MethodSignaturesReport do
|
|
173
173
|
subject.unverified_signatures = unverified_signatures
|
174
174
|
|
175
175
|
lines = [
|
176
|
+
nil,
|
176
177
|
"The following mocks are not verified:",
|
177
|
-
unverified_signatures[0].recommended_verified_signature,
|
178
|
-
unverified_signatures[1].recommended_verified_signature
|
178
|
+
"1. #{unverified_signatures[0].recommended_verified_signature}",
|
179
|
+
"2. #{unverified_signatures[1].recommended_verified_signature}",
|
180
|
+
"For more info, check out https://www.relishapp.com/gsmendoza/verified-double." ]
|
179
181
|
|
180
|
-
subject.should_receive(:puts).with(lines.join("\n"))
|
182
|
+
subject.should_receive(:puts).with(lines.join("\n\n"))
|
181
183
|
subject.output_unverified_signatures
|
182
184
|
end
|
183
185
|
end
|
@@ -1,4 +1,4 @@
|
|
1
|
-
require '
|
1
|
+
require 'spec_helper'
|
2
2
|
require 'verified_double/parse_method_signature'
|
3
3
|
|
4
4
|
describe VerifiedDouble::ParseMethodSignature do
|
@@ -65,7 +65,7 @@ describe VerifiedDouble::ParseMethodSignature do
|
|
65
65
|
let(:string){ "Class.method(:arg_1, :arg_2)" }
|
66
66
|
|
67
67
|
it "builds method signature values from the evals of the args" do
|
68
|
-
expect(subject.args.map(&:
|
68
|
+
expect(subject.args.map(&:content)).to eq([:arg_1, :arg_2])
|
69
69
|
end
|
70
70
|
end
|
71
71
|
|
@@ -83,7 +83,7 @@ describe VerifiedDouble::ParseMethodSignature do
|
|
83
83
|
describe "#return_values" do
|
84
84
|
context "for Class.method=>:return_value" do
|
85
85
|
let(:string){ "Class.method=>:return_value" }
|
86
|
-
it { expect(subject.return_values.map(&:
|
86
|
+
it { expect(subject.return_values.map(&:content)).to eq([:return_value]) }
|
87
87
|
end
|
88
88
|
|
89
89
|
context "for Class.method" do
|