File tree Expand file tree Collapse file tree 3 files changed +128
-4
lines changed Expand file tree Collapse file tree 3 files changed +128
-4
lines changed Original file line number Diff line number Diff line change @@ -6598,18 +6598,82 @@ Prefer using verifying doubles over normal doubles.
65986598----
65996599# bad
66006600let(:foo) do
6601- double(method_name: 'returned value')
6601+ double("ClassName", method_name: 'returned value')
66026602end
66036603
66046604# bad
66056605let(:foo) do
6606- double ("ClassName", method_name: 'returned value')
6606+ spy ("ClassName", method_name: 'returned value')
66076607end
66086608
66096609# good
66106610let(:foo) do
66116611 instance_double("ClassName", method_name: 'returned value')
66126612end
6613+
6614+ # good
6615+ let(:foo) do
6616+ class_double("ClassName", method_name: 'returned value')
6617+ end
6618+
6619+ # good
6620+ let(:foo) do
6621+ object_double("some object", method_name: 'returned value')
6622+ end
6623+ ----
6624+
6625+ [#_ignorenameless_-true-_default__-rspecverifieddoubles]
6626+ ==== `IgnoreNameless: true (default)`
6627+
6628+ [source,ruby]
6629+ ----
6630+ # good
6631+ let(:foo) do
6632+ double(method_name: 'returned value')
6633+ end
6634+
6635+ # good
6636+ let(:foo) do
6637+ double
6638+ end
6639+ ----
6640+
6641+ [#_ignorenameless_-false_-rspecverifieddoubles]
6642+ ==== `IgnoreNameless: false`
6643+
6644+ [source,ruby]
6645+ ----
6646+ # bad
6647+ let(:foo) do
6648+ double(method_name: 'returned value')
6649+ end
6650+
6651+ # bad
6652+ let(:foo) do
6653+ double
6654+ end
6655+ ----
6656+
6657+ [#_ignoresymbolicnames_-false-_default__-rspecverifieddoubles]
6658+ ==== `IgnoreSymbolicNames: false (default)`
6659+
6660+ [source,ruby]
6661+ ----
6662+ # bad
6663+ let(:foo) do
6664+ double(:foo)
6665+ end
6666+ ----
6667+
6668+ [#_ignoresymbolicnames_-true_-rspecverifieddoubles]
6669+ ==== `IgnoreSymbolicNames: true`
6670+
6671+ [source,ruby]
6672+ ----
6673+ # good
6674+ let(:foo) do
6675+ double(:foo)
6676+ end
66136677----
66146678
66156679[#configurable-attributes-rspecverifieddoubles]
Original file line number Diff line number Diff line change @@ -10,19 +10,63 @@ module RSpec
1010 # @example
1111 # # bad
1212 # let(:foo) do
13- # double(method_name: 'returned value')
13+ # double("ClassName", method_name: 'returned value')
1414 # end
1515 #
1616 # # bad
1717 # let(:foo) do
18- # double ("ClassName", method_name: 'returned value')
18+ # spy ("ClassName", method_name: 'returned value')
1919 # end
2020 #
2121 # # good
2222 # let(:foo) do
2323 # instance_double("ClassName", method_name: 'returned value')
2424 # end
2525 #
26+ # # good
27+ # let(:foo) do
28+ # class_double("ClassName", method_name: 'returned value')
29+ # end
30+ #
31+ # # good
32+ # let(:foo) do
33+ # object_double("some object", method_name: 'returned value')
34+ # end
35+ #
36+ # @example `IgnoreNameless: true (default)`
37+ # # good
38+ # let(:foo) do
39+ # double(method_name: 'returned value')
40+ # end
41+ #
42+ # # good
43+ # let(:foo) do
44+ # double
45+ # end
46+ #
47+ # @example `IgnoreNameless: false`
48+ # # bad
49+ # let(:foo) do
50+ # double(method_name: 'returned value')
51+ # end
52+ #
53+ # # bad
54+ # let(:foo) do
55+ # double
56+ # end
57+ #
58+ # @example `IgnoreSymbolicNames: false (default)`
59+ # # bad
60+ # let(:foo) do
61+ # double(:foo)
62+ # end
63+ #
64+ # @example `IgnoreSymbolicNames: true`
65+ # # good
66+ # let(:foo) do
67+ # double(:foo)
68+ # end
69+ #
2670 class VerifiedDoubles < Base
2771 MSG = 'Prefer using verifying doubles over normal doubles.'
2872 RESTRICT_ON_SEND = %i[ double spy ] . freeze
Original file line number Diff line number Diff line change 8181 end
8282 RUBY
8383 end
84+
85+ it 'ignores class_doubles' do
86+ expect_no_offenses ( <<~RUBY )
87+ it do
88+ foo = class_double("Foo")
89+ end
90+ RUBY
91+ end
92+
93+ it 'ignores object_doubles' do
94+ expect_no_offenses ( <<~RUBY )
95+ it do
96+ foo = object_double("Foo")
97+ end
98+ RUBY
99+ end
84100end
You can’t perform that action at this time.
0 commit comments