rubocop-minitest 0.6.2 → 0.7.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.
- checksums.yaml +5 -5
- data/.gitattributes +1 -0
- data/.rubocop_todo.yml +1 -1
- data/CHANGELOG.md +13 -0
- data/README.md +4 -0
- data/config/default.yml +7 -2
- data/lib/rubocop/cop/minitest/assert_empty.rb +4 -30
- data/lib/rubocop/cop/minitest/assert_includes.rb +4 -4
- data/lib/rubocop/cop/minitest/assert_instance_of.rb +4 -38
- data/lib/rubocop/cop/minitest/assert_match.rb +4 -39
- data/lib/rubocop/cop/minitest/assert_nil.rb +2 -2
- data/lib/rubocop/cop/minitest/assert_respond_to.rb +10 -45
- data/lib/rubocop/cop/minitest/assert_truthy.rb +2 -2
- data/lib/rubocop/cop/minitest/global_expectations.rb +74 -0
- data/lib/rubocop/cop/minitest/refute_empty.rb +4 -30
- data/lib/rubocop/cop/minitest/refute_false.rb +3 -3
- data/lib/rubocop/cop/minitest/refute_includes.rb +4 -4
- data/lib/rubocop/cop/minitest/refute_instance_of.rb +4 -38
- data/lib/rubocop/cop/minitest/refute_match.rb +4 -39
- data/lib/rubocop/cop/minitest/refute_nil.rb +2 -2
- data/lib/rubocop/cop/minitest/refute_respond_to.rb +10 -45
- data/lib/rubocop/cop/minitest_cops.rb +2 -1
- data/lib/rubocop/cop/mixin/minitest_cop_rule.rb +104 -0
- data/lib/rubocop/minitest/version.rb +1 -1
- data/manual/cops.md +1 -0
- data/manual/cops_minitest.md +62 -41
- data/relnotes/v0.6.2.md +5 -0
- data/relnotes/v0.7.0.md +13 -0
- metadata +8 -5
- data/lib/rubocop/cop/mixin/includes_cop_rule.rb +0 -78
@@ -9,14 +9,14 @@ module RuboCop
|
|
9
9
|
# @example
|
10
10
|
# # bad
|
11
11
|
# assert_equal(false, actual)
|
12
|
-
# assert_equal(false, actual, '
|
12
|
+
# assert_equal(false, actual, 'message')
|
13
13
|
#
|
14
14
|
# assert(!test)
|
15
|
-
# assert(!test, '
|
15
|
+
# assert(!test, 'message')
|
16
16
|
#
|
17
17
|
# # good
|
18
18
|
# refute(actual)
|
19
|
-
# refute(actual, '
|
19
|
+
# refute(actual, 'message')
|
20
20
|
#
|
21
21
|
class RefuteFalse < Cop
|
22
22
|
include ArgumentRangeHelper
|
@@ -9,16 +9,16 @@ module RuboCop
|
|
9
9
|
# @example
|
10
10
|
# # bad
|
11
11
|
# refute(collection.include?(object))
|
12
|
-
# refute(collection.include?(object), '
|
12
|
+
# refute(collection.include?(object), 'message')
|
13
13
|
#
|
14
14
|
# # good
|
15
15
|
# refute_includes(collection, object)
|
16
|
-
# refute_includes(collection, object, '
|
16
|
+
# refute_includes(collection, object, 'message')
|
17
17
|
#
|
18
18
|
class RefuteIncludes < Cop
|
19
|
-
extend
|
19
|
+
extend MinitestCopRule
|
20
20
|
|
21
|
-
|
21
|
+
define_rule :refute, target_method: :include?, preferred_method: :refute_includes
|
22
22
|
end
|
23
23
|
end
|
24
24
|
end
|
@@ -9,50 +9,16 @@ module RuboCop
|
|
9
9
|
# @example
|
10
10
|
# # bad
|
11
11
|
# refute(object.instance_of?(Class))
|
12
|
-
# refute(object.instance_of?(Class), '
|
12
|
+
# refute(object.instance_of?(Class), 'message')
|
13
13
|
#
|
14
14
|
# # good
|
15
15
|
# refute_instance_of(Class, object)
|
16
|
-
# refute_instance_of(Class, object, '
|
16
|
+
# refute_instance_of(Class, object, 'message')
|
17
17
|
#
|
18
18
|
class RefuteInstanceOf < Cop
|
19
|
-
|
19
|
+
extend MinitestCopRule
|
20
20
|
|
21
|
-
|
22
|
-
'`refute(%<receiver>s)`.'
|
23
|
-
|
24
|
-
def_node_matcher :refute_with_instance_of, <<~PATTERN
|
25
|
-
(send nil? :refute $(send $_ :instance_of? $_) $...)
|
26
|
-
PATTERN
|
27
|
-
|
28
|
-
def on_send(node)
|
29
|
-
refute_with_instance_of(node) do |first_receiver_arg, object, method, rest_args|
|
30
|
-
message = rest_args.first
|
31
|
-
arguments = node_arguments(object, method, message)
|
32
|
-
receiver = [first_receiver_arg.source, message&.source].compact.join(', ')
|
33
|
-
|
34
|
-
offense_message = format(MSG, arguments: arguments, receiver: receiver)
|
35
|
-
|
36
|
-
add_offense(node, message: offense_message)
|
37
|
-
end
|
38
|
-
end
|
39
|
-
|
40
|
-
def autocorrect(node)
|
41
|
-
lambda do |corrector|
|
42
|
-
refute_with_instance_of(node) do |_, object, method|
|
43
|
-
corrector.replace(node.loc.selector, 'refute_instance_of')
|
44
|
-
|
45
|
-
replacement = [method, object].map(&:source).join(', ')
|
46
|
-
corrector.replace(first_argument_range(node), replacement)
|
47
|
-
end
|
48
|
-
end
|
49
|
-
end
|
50
|
-
|
51
|
-
private
|
52
|
-
|
53
|
-
def node_arguments(object, method, message)
|
54
|
-
[method, object, message].compact.map(&:source).join(', ')
|
55
|
-
end
|
21
|
+
define_rule :refute, target_method: :instance_of?, inverse: true
|
56
22
|
end
|
57
23
|
end
|
58
24
|
end
|
@@ -9,51 +9,16 @@ module RuboCop
|
|
9
9
|
# @example
|
10
10
|
# # bad
|
11
11
|
# refute(matcher.match(string))
|
12
|
-
# refute(matcher.match(string), '
|
12
|
+
# refute(matcher.match(string), 'message')
|
13
13
|
#
|
14
14
|
# # good
|
15
15
|
# refute_match(matcher, string)
|
16
|
-
# refute_match(matcher, string, '
|
16
|
+
# refute_match(matcher, string, 'message')
|
17
17
|
#
|
18
18
|
class RefuteMatch < Cop
|
19
|
-
|
19
|
+
extend MinitestCopRule
|
20
20
|
|
21
|
-
|
22
|
-
'`refute(%<receiver>s)`.'
|
23
|
-
|
24
|
-
def_node_matcher :refute_with_match, <<~PATTERN
|
25
|
-
(send nil? :refute $(send $_ :match $_) $...)
|
26
|
-
PATTERN
|
27
|
-
|
28
|
-
def on_send(node)
|
29
|
-
refute_with_match(node) do
|
30
|
-
|first_receiver_arg, matcher, actual, rest_receiver_arg|
|
31
|
-
message = rest_receiver_arg.first
|
32
|
-
arguments = node_arguments(matcher, actual, message)
|
33
|
-
receiver = [first_receiver_arg.source, message&.source].compact.join(', ')
|
34
|
-
|
35
|
-
offense_message = format(MSG, arguments: arguments, receiver: receiver)
|
36
|
-
|
37
|
-
add_offense(node, message: offense_message)
|
38
|
-
end
|
39
|
-
end
|
40
|
-
|
41
|
-
def autocorrect(node)
|
42
|
-
lambda do |corrector|
|
43
|
-
refute_with_match(node) do |_, matcher, actual|
|
44
|
-
corrector.replace(node.loc.selector, 'refute_match')
|
45
|
-
|
46
|
-
replacement = [matcher, actual].map(&:source).join(', ')
|
47
|
-
corrector.replace(first_argument_range(node), replacement)
|
48
|
-
end
|
49
|
-
end
|
50
|
-
end
|
51
|
-
|
52
|
-
private
|
53
|
-
|
54
|
-
def node_arguments(matcher, actual, message)
|
55
|
-
[matcher.source, actual.source, message&.source].compact.join(', ')
|
56
|
-
end
|
21
|
+
define_rule :refute, target_method: :match
|
57
22
|
end
|
58
23
|
end
|
59
24
|
end
|
@@ -9,11 +9,11 @@ module RuboCop
|
|
9
9
|
# @example
|
10
10
|
# # bad
|
11
11
|
# refute_equal(nil, actual)
|
12
|
-
# refute_equal(nil, actual, '
|
12
|
+
# refute_equal(nil, actual, 'message')
|
13
13
|
#
|
14
14
|
# # good
|
15
15
|
# refute_nil(actual)
|
16
|
-
# refute_nil(actual, '
|
16
|
+
# refute_nil(actual, 'message')
|
17
17
|
#
|
18
18
|
class RefuteNil < Cop
|
19
19
|
include ArgumentRangeHelper
|
@@ -3,59 +3,24 @@
|
|
3
3
|
module RuboCop
|
4
4
|
module Cop
|
5
5
|
module Minitest
|
6
|
-
# This cop enforces the test to use `refute_respond_to(object, :
|
7
|
-
# over `refute(object.respond_to?(:
|
6
|
+
# This cop enforces the test to use `refute_respond_to(object, :do_something)`
|
7
|
+
# over `refute(object.respond_to?(:do_something))`.
|
8
8
|
#
|
9
9
|
# @example
|
10
10
|
# # bad
|
11
|
-
# refute(object.respond_to?(:
|
12
|
-
# refute(object.respond_to?(:
|
13
|
-
# refute(respond_to?(:
|
11
|
+
# refute(object.respond_to?(:do_something))
|
12
|
+
# refute(object.respond_to?(:do_something), 'message')
|
13
|
+
# refute(respond_to?(:do_something))
|
14
14
|
#
|
15
15
|
# # good
|
16
|
-
# refute_respond_to(object, :
|
17
|
-
# refute_respond_to(object, :
|
18
|
-
# refute_respond_to(self, :
|
16
|
+
# refute_respond_to(object, :do_something)
|
17
|
+
# refute_respond_to(object, :do_something, 'message')
|
18
|
+
# refute_respond_to(self, :do_something)
|
19
19
|
#
|
20
20
|
class RefuteRespondTo < Cop
|
21
|
-
|
21
|
+
extend MinitestCopRule
|
22
22
|
|
23
|
-
|
24
|
-
'`refute(%<over>s)`.'
|
25
|
-
|
26
|
-
def_node_matcher :refute_with_respond_to, <<~PATTERN
|
27
|
-
(send nil? :refute $(send $_ :respond_to? $_) $...)
|
28
|
-
PATTERN
|
29
|
-
|
30
|
-
def on_send(node)
|
31
|
-
refute_with_respond_to(node) do |over, object, method, rest_args|
|
32
|
-
custom_message = rest_args.first
|
33
|
-
preferred = build_preferred_arguments(object, method, custom_message)
|
34
|
-
over = [over, custom_message].compact.map(&:source).join(', ')
|
35
|
-
message = format(MSG, preferred: preferred, over: over)
|
36
|
-
add_offense(node, message: message)
|
37
|
-
end
|
38
|
-
end
|
39
|
-
|
40
|
-
def autocorrect(node)
|
41
|
-
lambda do |corrector|
|
42
|
-
refute_with_respond_to(node) do |_, object, method|
|
43
|
-
corrector.replace(node.loc.selector, 'refute_respond_to')
|
44
|
-
|
45
|
-
object = object ? object.source : 'self'
|
46
|
-
replacement = [object, method.source].join(', ')
|
47
|
-
corrector.replace(first_argument_range(node), replacement)
|
48
|
-
end
|
49
|
-
end
|
50
|
-
end
|
51
|
-
|
52
|
-
private
|
53
|
-
|
54
|
-
def build_preferred_arguments(receiver, method, message)
|
55
|
-
receiver = receiver ? receiver.source : 'self'
|
56
|
-
|
57
|
-
[receiver, method.source, message&.source].compact.join(', ')
|
58
|
-
end
|
23
|
+
define_rule :refute, target_method: :respond_to?
|
59
24
|
end
|
60
25
|
end
|
61
26
|
end
|
@@ -1,7 +1,7 @@
|
|
1
1
|
# frozen_string_literal: true
|
2
2
|
|
3
3
|
require_relative 'mixin/argument_range_helper'
|
4
|
-
require_relative 'mixin/
|
4
|
+
require_relative 'mixin/minitest_cop_rule'
|
5
5
|
require_relative 'minitest/assert_empty'
|
6
6
|
require_relative 'minitest/assert_empty_literal'
|
7
7
|
require_relative 'minitest/assert_equal'
|
@@ -11,6 +11,7 @@ require_relative 'minitest/assert_instance_of'
|
|
11
11
|
require_relative 'minitest/assert_match'
|
12
12
|
require_relative 'minitest/assert_respond_to'
|
13
13
|
require_relative 'minitest/assert_truthy'
|
14
|
+
require_relative 'minitest/global_expectations'
|
14
15
|
require_relative 'minitest/refute_empty'
|
15
16
|
require_relative 'minitest/refute_false'
|
16
17
|
require_relative 'minitest/refute_equal'
|
@@ -0,0 +1,104 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
module RuboCop
|
4
|
+
module Cop
|
5
|
+
# Provide a method to define offense rule for Minitest cops.
|
6
|
+
module MinitestCopRule
|
7
|
+
#
|
8
|
+
# Define offense rule for Minitest cops.
|
9
|
+
#
|
10
|
+
# @example
|
11
|
+
# define_rule :assert, target_method: :match
|
12
|
+
# define_rule :refute, target_method: :match
|
13
|
+
# define_rule :assert, target_method: :include?, preferred_method: :assert_includes
|
14
|
+
# define_rule :assert, target_method: :instance_of?, inverse: true
|
15
|
+
#
|
16
|
+
# @param assertion_method [Symbol] Assertion method like `assert` or `refute`.
|
17
|
+
# @param target_method [Symbol] Method name offensed by assertion method arguments.
|
18
|
+
# @param preferred_method [Symbol] An optional param. Custom method name replaced by
|
19
|
+
# auto-correction. The preferred method name that connects
|
20
|
+
# `assertion_method` and `target_method` with `_` is
|
21
|
+
# the default name.
|
22
|
+
# @param inverse [Boolean] An optional param. Order of arguments replaced by auto-correction.
|
23
|
+
#
|
24
|
+
def define_rule(assertion_method, target_method:, preferred_method: nil, inverse: false)
|
25
|
+
if preferred_method.nil?
|
26
|
+
preferred_method = "#{assertion_method}_#{target_method.to_s.delete('?')}"
|
27
|
+
end
|
28
|
+
|
29
|
+
class_eval(<<~RUBY, __FILE__, __LINE__ + 1)
|
30
|
+
include ArgumentRangeHelper
|
31
|
+
|
32
|
+
MSG = 'Prefer using `#{preferred_method}(%<new_arguments>s)` over ' \
|
33
|
+
'`#{assertion_method}(%<original_arguments>s)`.'
|
34
|
+
|
35
|
+
def on_send(node)
|
36
|
+
return unless node.method?(:#{assertion_method})
|
37
|
+
return unless (arguments = peel_redundant_parentheses_from(node.arguments))
|
38
|
+
return unless arguments.first.respond_to?(:method?) && arguments.first.method?(:#{target_method})
|
39
|
+
|
40
|
+
add_offense(node, message: offense_message(arguments))
|
41
|
+
end
|
42
|
+
|
43
|
+
def autocorrect(node)
|
44
|
+
lambda do |corrector|
|
45
|
+
corrector.replace(node.loc.selector, '#{preferred_method}')
|
46
|
+
|
47
|
+
arguments = peel_redundant_parentheses_from(node.arguments)
|
48
|
+
|
49
|
+
new_arguments = new_arguments(arguments).join(', ')
|
50
|
+
|
51
|
+
if enclosed_in_redundant_parentheses?(node)
|
52
|
+
new_arguments = '(' + new_arguments + ')'
|
53
|
+
end
|
54
|
+
|
55
|
+
corrector.replace(first_argument_range(node), new_arguments)
|
56
|
+
end
|
57
|
+
end
|
58
|
+
|
59
|
+
private
|
60
|
+
|
61
|
+
def peel_redundant_parentheses_from(arguments)
|
62
|
+
return arguments unless arguments.first.begin_type?
|
63
|
+
|
64
|
+
peel_redundant_parentheses_from(arguments.first.children)
|
65
|
+
end
|
66
|
+
|
67
|
+
def offense_message(arguments)
|
68
|
+
message_argument = arguments.last if arguments.first != arguments.last
|
69
|
+
|
70
|
+
new_arguments = [
|
71
|
+
new_arguments(arguments),
|
72
|
+
message_argument&.source
|
73
|
+
].flatten.compact.join(', ')
|
74
|
+
|
75
|
+
original_arguments = arguments.map(&:source).join(', ')
|
76
|
+
|
77
|
+
format(
|
78
|
+
MSG,
|
79
|
+
new_arguments: new_arguments,
|
80
|
+
original_arguments: original_arguments
|
81
|
+
)
|
82
|
+
end
|
83
|
+
|
84
|
+
def new_arguments(arguments)
|
85
|
+
receiver = correct_receiver(arguments.first.receiver)
|
86
|
+
method_argument = arguments.first.arguments.first&.source
|
87
|
+
|
88
|
+
new_arguments = [receiver, method_argument].compact
|
89
|
+
new_arguments.reverse! if #{inverse}
|
90
|
+
new_arguments
|
91
|
+
end
|
92
|
+
|
93
|
+
def enclosed_in_redundant_parentheses?(node)
|
94
|
+
node.arguments.first.begin_type?
|
95
|
+
end
|
96
|
+
|
97
|
+
def correct_receiver(receiver)
|
98
|
+
receiver ? receiver.source : 'self'
|
99
|
+
end
|
100
|
+
RUBY
|
101
|
+
end
|
102
|
+
end
|
103
|
+
end
|
104
|
+
end
|
data/manual/cops.md
CHANGED
@@ -10,6 +10,7 @@
|
|
10
10
|
* [Minitest/AssertNil](cops_minitest.md#minitestassertnil)
|
11
11
|
* [Minitest/AssertRespondTo](cops_minitest.md#minitestassertrespondto)
|
12
12
|
* [Minitest/AssertTruthy](cops_minitest.md#minitestasserttruthy)
|
13
|
+
* [Minitest/GlobalExpectations](cops_minitest.md#minitestglobalexpectations)
|
13
14
|
* [Minitest/RefuteEmpty](cops_minitest.md#minitestrefuteempty)
|
14
15
|
* [Minitest/RefuteEqual](cops_minitest.md#minitestrefuteequal)
|
15
16
|
* [Minitest/RefuteFalse](cops_minitest.md#minitestrefutefalse)
|
data/manual/cops_minitest.md
CHANGED
@@ -14,11 +14,11 @@ instead of using `assert(object.empty?)`.
|
|
14
14
|
```ruby
|
15
15
|
# bad
|
16
16
|
assert(object.empty?)
|
17
|
-
assert(object.empty?, '
|
17
|
+
assert(object.empty?, 'message')
|
18
18
|
|
19
19
|
# good
|
20
20
|
assert_empty(object)
|
21
|
-
assert_empty(object, '
|
21
|
+
assert_empty(object, 'message')
|
22
22
|
```
|
23
23
|
|
24
24
|
### References
|
@@ -82,11 +82,11 @@ instead of using `assert(collection.include?(object))`.
|
|
82
82
|
```ruby
|
83
83
|
# bad
|
84
84
|
assert(collection.include?(object))
|
85
|
-
assert(collection.include?(object), '
|
85
|
+
assert(collection.include?(object), 'message')
|
86
86
|
|
87
87
|
# good
|
88
88
|
assert_includes(collection, object)
|
89
|
-
assert_includes(collection, object, '
|
89
|
+
assert_includes(collection, object, 'message')
|
90
90
|
```
|
91
91
|
|
92
92
|
### References
|
@@ -107,11 +107,11 @@ over `assert(object.instance_of?(Class))`.
|
|
107
107
|
```ruby
|
108
108
|
# bad
|
109
109
|
assert(object.instance_of?(Class))
|
110
|
-
assert(object.instance_of?(Class), '
|
110
|
+
assert(object.instance_of?(Class), 'message')
|
111
111
|
|
112
112
|
# good
|
113
113
|
assert_instance_of(Class, object)
|
114
|
-
assert_instance_of(Class, object, '
|
114
|
+
assert_instance_of(Class, object, 'message')
|
115
115
|
```
|
116
116
|
|
117
117
|
### References
|
@@ -132,11 +132,11 @@ instead of using `assert(matcher.match(string))`.
|
|
132
132
|
```ruby
|
133
133
|
# bad
|
134
134
|
assert(matcher.match(string))
|
135
|
-
assert(matcher.match(string), '
|
135
|
+
assert(matcher.match(string), 'message')
|
136
136
|
|
137
137
|
# good
|
138
138
|
assert_match(regex, string)
|
139
|
-
assert_match(matcher, string, '
|
139
|
+
assert_match(matcher, string, 'message')
|
140
140
|
```
|
141
141
|
|
142
142
|
### References
|
@@ -157,11 +157,11 @@ instead of using `assert_equal(nil, something)`.
|
|
157
157
|
```ruby
|
158
158
|
# bad
|
159
159
|
assert_equal(nil, actual)
|
160
|
-
assert_equal(nil, actual, '
|
160
|
+
assert_equal(nil, actual, 'message')
|
161
161
|
|
162
162
|
# good
|
163
163
|
assert_nil(actual)
|
164
|
-
assert_nil(actual, '
|
164
|
+
assert_nil(actual, 'message')
|
165
165
|
```
|
166
166
|
|
167
167
|
### References
|
@@ -174,21 +174,21 @@ Enabled by default | Safe | Supports autocorrection | VersionAdded | VersionChan
|
|
174
174
|
--- | --- | --- | --- | ---
|
175
175
|
Enabled | Yes | Yes | 0.3 | -
|
176
176
|
|
177
|
-
This cop enforces the use of `assert_respond_to(object, :
|
178
|
-
over `assert(object.respond_to?(:
|
177
|
+
This cop enforces the use of `assert_respond_to(object, :do_something)`
|
178
|
+
over `assert(object.respond_to?(:do_something))`.
|
179
179
|
|
180
180
|
### Examples
|
181
181
|
|
182
182
|
```ruby
|
183
183
|
# bad
|
184
|
-
assert(object.respond_to?(:
|
185
|
-
assert(object.respond_to?(:
|
186
|
-
assert(respond_to?(:
|
184
|
+
assert(object.respond_to?(:do_something))
|
185
|
+
assert(object.respond_to?(:do_something), 'message')
|
186
|
+
assert(respond_to?(:do_something))
|
187
187
|
|
188
188
|
# good
|
189
|
-
assert_respond_to(object, :
|
190
|
-
assert_respond_to(object, :
|
191
|
-
assert_respond_to(self,
|
189
|
+
assert_respond_to(object, :do_something)
|
190
|
+
assert_respond_to(object, :do_something, 'message')
|
191
|
+
assert_respond_to(self, :do_something)
|
192
192
|
```
|
193
193
|
|
194
194
|
### References
|
@@ -209,17 +209,38 @@ instead of using `assert_equal(true, actual)`.
|
|
209
209
|
```ruby
|
210
210
|
# bad
|
211
211
|
assert_equal(true, actual)
|
212
|
-
assert_equal(true, actual, '
|
212
|
+
assert_equal(true, actual, 'message')
|
213
213
|
|
214
214
|
# good
|
215
215
|
assert(actual)
|
216
|
-
assert(actual, '
|
216
|
+
assert(actual, 'message')
|
217
217
|
```
|
218
218
|
|
219
219
|
### References
|
220
220
|
|
221
221
|
* [https://github.com/rubocop-hq/minitest-style-guide#assert-truthy](https://github.com/rubocop-hq/minitest-style-guide#assert-truthy)
|
222
222
|
|
223
|
+
## Minitest/GlobalExpectations
|
224
|
+
|
225
|
+
Enabled by default | Safe | Supports autocorrection | VersionAdded | VersionChanged
|
226
|
+
--- | --- | --- | --- | ---
|
227
|
+
Enabled | Yes | Yes | 0.7 | -
|
228
|
+
|
229
|
+
This Cop checks for deprecated global expectations
|
230
|
+
and autocorrects them to use expect format.
|
231
|
+
|
232
|
+
### Examples
|
233
|
+
|
234
|
+
```ruby
|
235
|
+
# bad
|
236
|
+
n.must_equal 42
|
237
|
+
n.wont_match b
|
238
|
+
|
239
|
+
# good
|
240
|
+
_(n).must_equal 42
|
241
|
+
_(n).wont_match b
|
242
|
+
```
|
243
|
+
|
223
244
|
## Minitest/RefuteEmpty
|
224
245
|
|
225
246
|
Enabled by default | Safe | Supports autocorrection | VersionAdded | VersionChanged
|
@@ -234,11 +255,11 @@ using `refute(object.empty?)`.
|
|
234
255
|
```ruby
|
235
256
|
# bad
|
236
257
|
refute(object.empty?)
|
237
|
-
refute(object.empty?, '
|
258
|
+
refute(object.empty?, 'message')
|
238
259
|
|
239
260
|
# good
|
240
261
|
refute_empty(object)
|
241
|
-
refute_empty(object, '
|
262
|
+
refute_empty(object, 'message')
|
242
263
|
```
|
243
264
|
|
244
265
|
### References
|
@@ -283,14 +304,14 @@ over `assert_equal(false, object)`.
|
|
283
304
|
```ruby
|
284
305
|
# bad
|
285
306
|
assert_equal(false, actual)
|
286
|
-
assert_equal(false, actual, '
|
307
|
+
assert_equal(false, actual, 'message')
|
287
308
|
|
288
309
|
assert(!test)
|
289
|
-
assert(!test, '
|
310
|
+
assert(!test, 'message')
|
290
311
|
|
291
312
|
# good
|
292
313
|
refute(actual)
|
293
|
-
refute(actual, '
|
314
|
+
refute(actual, 'message')
|
294
315
|
```
|
295
316
|
|
296
317
|
### References
|
@@ -311,11 +332,11 @@ instead of using `refute(collection.include?(object))`.
|
|
311
332
|
```ruby
|
312
333
|
# bad
|
313
334
|
refute(collection.include?(object))
|
314
|
-
refute(collection.include?(object), '
|
335
|
+
refute(collection.include?(object), 'message')
|
315
336
|
|
316
337
|
# good
|
317
338
|
refute_includes(collection, object)
|
318
|
-
refute_includes(collection, object, '
|
339
|
+
refute_includes(collection, object, 'message')
|
319
340
|
```
|
320
341
|
|
321
342
|
### References
|
@@ -336,11 +357,11 @@ over `refute(object.instance_of?(Class))`.
|
|
336
357
|
```ruby
|
337
358
|
# bad
|
338
359
|
refute(object.instance_of?(Class))
|
339
|
-
refute(object.instance_of?(Class), '
|
360
|
+
refute(object.instance_of?(Class), 'message')
|
340
361
|
|
341
362
|
# good
|
342
363
|
refute_instance_of(Class, object)
|
343
|
-
refute_instance_of(Class, object, '
|
364
|
+
refute_instance_of(Class, object, 'message')
|
344
365
|
```
|
345
366
|
|
346
367
|
### References
|
@@ -361,11 +382,11 @@ instead of using `refute(matcher.match(string))`.
|
|
361
382
|
```ruby
|
362
383
|
# bad
|
363
384
|
refute(matcher.match(string))
|
364
|
-
refute(matcher.match(string), '
|
385
|
+
refute(matcher.match(string), 'message')
|
365
386
|
|
366
387
|
# good
|
367
388
|
refute_match(matcher, string)
|
368
|
-
refute_match(matcher, string, '
|
389
|
+
refute_match(matcher, string, 'message')
|
369
390
|
```
|
370
391
|
|
371
392
|
### References
|
@@ -386,11 +407,11 @@ instead of using `refute_equal(nil, something)`.
|
|
386
407
|
```ruby
|
387
408
|
# bad
|
388
409
|
refute_equal(nil, actual)
|
389
|
-
refute_equal(nil, actual, '
|
410
|
+
refute_equal(nil, actual, 'message')
|
390
411
|
|
391
412
|
# good
|
392
413
|
refute_nil(actual)
|
393
|
-
refute_nil(actual, '
|
414
|
+
refute_nil(actual, 'message')
|
394
415
|
```
|
395
416
|
|
396
417
|
### References
|
@@ -403,21 +424,21 @@ Enabled by default | Safe | Supports autocorrection | VersionAdded | VersionChan
|
|
403
424
|
--- | --- | --- | --- | ---
|
404
425
|
Enabled | Yes | Yes | 0.4 | -
|
405
426
|
|
406
|
-
This cop enforces the test to use `refute_respond_to(object, :
|
407
|
-
over `refute(object.respond_to?(:
|
427
|
+
This cop enforces the test to use `refute_respond_to(object, :do_something)`
|
428
|
+
over `refute(object.respond_to?(:do_something))`.
|
408
429
|
|
409
430
|
### Examples
|
410
431
|
|
411
432
|
```ruby
|
412
433
|
# bad
|
413
|
-
refute(object.respond_to?(:
|
414
|
-
refute(object.respond_to?(:
|
415
|
-
refute(respond_to?(:
|
434
|
+
refute(object.respond_to?(:do_something))
|
435
|
+
refute(object.respond_to?(:do_something), 'message')
|
436
|
+
refute(respond_to?(:do_something))
|
416
437
|
|
417
438
|
# good
|
418
|
-
refute_respond_to(object, :
|
419
|
-
refute_respond_to(object, :
|
420
|
-
refute_respond_to(self, :
|
439
|
+
refute_respond_to(object, :do_something)
|
440
|
+
refute_respond_to(object, :do_something, 'message')
|
441
|
+
refute_respond_to(self, :do_something)
|
421
442
|
```
|
422
443
|
|
423
444
|
### References
|