rubocop-minitest 0.9.0 → 0.10.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (46) hide show
  1. checksums.yaml +4 -4
  2. data/.rubocop.yml +1 -3
  3. data/CHANGELOG.md +22 -0
  4. data/Gemfile +1 -1
  5. data/README.md +2 -2
  6. data/Rakefile +29 -0
  7. data/config/default.yml +95 -16
  8. data/docs/antora.yml +7 -0
  9. data/docs/modules/ROOT/nav.adoc +6 -0
  10. data/docs/modules/ROOT/pages/cops.adoc +37 -0
  11. data/docs/modules/ROOT/pages/cops_minitest.adoc +1014 -0
  12. data/docs/modules/ROOT/pages/index.adoc +5 -0
  13. data/docs/modules/ROOT/pages/installation.adoc +15 -0
  14. data/docs/modules/ROOT/pages/usage.adoc +32 -0
  15. data/{manual → legacy-docs}/cops.md +0 -0
  16. data/{manual → legacy-docs}/cops_minitest.md +0 -0
  17. data/{manual → legacy-docs}/index.md +0 -0
  18. data/{manual → legacy-docs}/installation.md +0 -0
  19. data/{manual → legacy-docs}/usage.md +0 -0
  20. data/lib/rubocop/cop/generator.rb +56 -0
  21. data/lib/rubocop/cop/minitest/assert_empty_literal.rb +15 -0
  22. data/lib/rubocop/cop/minitest/assert_in_delta.rb +27 -0
  23. data/lib/rubocop/cop/minitest/assert_kind_of.rb +25 -0
  24. data/lib/rubocop/cop/minitest/assert_output.rb +49 -0
  25. data/lib/rubocop/cop/minitest/assert_path_exists.rb +58 -0
  26. data/lib/rubocop/cop/minitest/assert_silent.rb +45 -0
  27. data/lib/rubocop/cop/minitest/assertion_in_lifecycle_hook.rb +43 -0
  28. data/lib/rubocop/cop/minitest/global_expectations.rb +2 -4
  29. data/lib/rubocop/cop/minitest/literal_as_actual_argument.rb +52 -0
  30. data/lib/rubocop/cop/minitest/multiple_assertions.rb +63 -0
  31. data/lib/rubocop/cop/minitest/refute_in_delta.rb +27 -0
  32. data/lib/rubocop/cop/minitest/refute_kind_of.rb +25 -0
  33. data/lib/rubocop/cop/minitest/refute_path_exists.rb +58 -0
  34. data/lib/rubocop/cop/minitest/test_method_name.rb +70 -0
  35. data/lib/rubocop/cop/minitest/unspecified_exception.rb +36 -0
  36. data/lib/rubocop/cop/minitest_cops.rb +15 -0
  37. data/lib/rubocop/cop/mixin/argument_range_helper.rb +10 -0
  38. data/lib/rubocop/cop/mixin/in_delta_mixin.rb +50 -0
  39. data/lib/rubocop/cop/mixin/minitest_exploration_helpers.rb +84 -0
  40. data/lib/rubocop/minitest/version.rb +1 -1
  41. data/mkdocs.yml +2 -2
  42. data/relnotes/v0.10.0.md +21 -0
  43. data/rubocop-minitest.gemspec +3 -3
  44. data/tasks/cops_documentation.rake +83 -52
  45. data/tasks/cut_release.rake +16 -0
  46. metadata +35 -11
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: c082e4d082877168b339446bf00e74f719a3903d7ae2a19dc6b919af185c9c20
4
- data.tar.gz: b77c805249d256213f7b166579244db96ce188e8dbe8ca7d156d14a4c74e77b5
3
+ metadata.gz: ba38b8b45ed71a06486486456dbda0e2d833f58ccf59fc7e22ecb3a1d4ec2dd7
4
+ data.tar.gz: 5f5260b7699852144213e044386662b3168eff83068ee88257df478fd79c7314
5
5
  SHA512:
6
- metadata.gz: 348081b691b1afc2fc563d594482a8e19b3b5f487c18e4e51320e2be6c9e76fe89ea8c6badfcd4327f7c3da8a13b5aa8293e3535ce7385083edec466fedee769
7
- data.tar.gz: 383422b5cc623d52cef4f0656da57e4b648d85c00699006d317837172dc06c97f182f660e15a7704cd5f13803e12af31912db41aed9f003223149b8cd64f5b51
6
+ metadata.gz: accc29f0bf8c2c80404a0777122446bea1ed7a6d57809b68b4ca21f66aedecdc161c3f29dd0777a61a2bccda158da3cb20892470994d335a4da63a2c09fbc80a
7
+ data.tar.gz: 8c3c5b4f73bd953c7ced000471c3e91645e36c240d7e73f04631487344c3a9e14152b2c83b3d6dccdf3530936007deb4e3dbc819c6b28e86a34ef5b821802375
@@ -8,6 +8,7 @@ require:
8
8
  - rubocop-minitest
9
9
 
10
10
  AllCops:
11
+ NewCops: enable
11
12
  TargetRubyVersion: 2.4
12
13
 
13
14
  Naming/PredicateName:
@@ -47,9 +48,6 @@ Layout/ClassStructure:
47
48
  - protected_methods
48
49
  - private_methods
49
50
 
50
- Layout/LineLength:
51
- Max: 120
52
-
53
51
  # Trailing white space is meaningful in code examples
54
52
  Layout/TrailingWhitespace:
55
53
  AllowInHeredoc: true
@@ -2,6 +2,26 @@
2
2
 
3
3
  ## master (unreleased)
4
4
 
5
+ ## 0.10.0 (2020-07-12)
6
+
7
+ ### New features
8
+
9
+ * [#92](https://github.com/rubocop-hq/rubocop-minitest/pull/92): Add new `Minitest/LiteralAsActualArgument` cop. ([@fatkodima][], [@tsmmark][])
10
+ * [#95](https://github.com/rubocop-hq/rubocop-minitest/pull/95): Add new `Minitest/AssertionInLifecycleHook` cop. ([@fatkodima][])
11
+ * [#91](https://github.com/rubocop-hq/rubocop-minitest/pull/91): Add new `Minitest/AssertInDelta` and `Minitest/RefuteInDelta` cops. ([@fatkodima][])
12
+ * [#89](https://github.com/rubocop-hq/rubocop-minitest/pull/89): Add new `Minitest/TestMethodName` cop. ([@fatkodima][])
13
+ * [#83](https://github.com/rubocop-hq/rubocop-minitest/pull/83): New cops `AssertPathExists` and `RefutePathExists` check for use of `assert_path_exists`/`refute_path_exists` instead of `assert(File.exist?(path))`/`refute(File.exist?(path))`. ([@fatkodima][])
14
+ * [#88](https://github.com/rubocop-hq/rubocop-minitest/pull/88): Add new `Minitest/MultipleAssertions` cop. ([@fatkodima][])
15
+ * [#87](https://github.com/rubocop-hq/rubocop-minitest/pull/87): Add new `Minitest/AssertSilent` cop. ([@fatkodima][])
16
+ * [#96](https://github.com/rubocop-hq/rubocop-minitest/pull/96): Add new `Minitest/UnspecifiedException` cop. ([@fatkodima][])
17
+ * [#98](https://github.com/rubocop-hq/rubocop-minitest/pull/98): Add new `Minitest/AssertOutput` cop. ([@fatkodima][])
18
+ * [#84](https://github.com/rubocop-hq/rubocop-minitest/pull/84): New cops `AssertKindOf` and `RefuteKindOf` check for use of `assert_kind_of`/`refute_kind_of` instead of `assert(foo.kind_of?(Class))`/`refute(foo.kind_of?(Class))`. ([@fatkodima][])
19
+ * [#85](https://github.com/rubocop-hq/rubocop-minitest/pull/85): Add autocorrect to `Rails/AssertEmptyLiteral` cop. ([@fatkodima][])
20
+
21
+ ### Changes
22
+
23
+ * [#104](https://github.com/rubocop-hq/rubocop-minitest/pull/104): Require RuboCop 0.87 or higher. ([@koic][])
24
+
5
25
  ## 0.9.0 (2020-04-13)
6
26
 
7
27
  ### Bug fixes
@@ -137,3 +157,5 @@
137
157
  [@herwinw]: https://github.com/herwinw
138
158
  [@fsateler]: https://github.com/fsateler
139
159
  [@andrykonchin]: https://github.com/andrykonchin
160
+ [@fatkodima]: https://github.com/fatkodima
161
+ [@tsmmark]: https://github.com/tsmmark
data/Gemfile CHANGED
@@ -9,5 +9,5 @@ gemspec
9
9
  gem 'bump', require: false
10
10
  gem 'rake'
11
11
  gem 'rubocop', github: 'rubocop-hq/rubocop'
12
- gem 'rubocop-performance', '~> 1.5.0'
12
+ gem 'rubocop-performance', '~> 1.6.0'
13
13
  gem 'yard', '~> 0.9'
data/README.md CHANGED
@@ -62,7 +62,7 @@ end
62
62
 
63
63
  All cops are located under
64
64
  [`lib/rubocop/cop/minitest`](lib/rubocop/cop/minitest), and contain
65
- examples/documentation. The documentation is published [here](https://docs.rubocop.org/projects/minitest).
65
+ examples/documentation. The documentation is published [here](https://docs.rubocop.org/rubocop-minitest/).
66
66
 
67
67
  In your `.rubocop.yml`, you may treat the Minitest cops just like any other
68
68
  cop. For example:
@@ -75,7 +75,7 @@ Minitest/AssertNil:
75
75
 
76
76
  ## Documentation
77
77
 
78
- You can read a lot more about RuboCop Minitest in its [official docs](https://docs.rubocop.org/projects/minitest/).
78
+ You can read a lot more about RuboCop Minitest in its [official docs](https://docs.rubocop.org/rubocop-minitest/).
79
79
 
80
80
  ## Contributing
81
81
 
data/Rakefile CHANGED
@@ -15,6 +15,7 @@ end
15
15
 
16
16
  require 'rubocop/rake_task'
17
17
  require 'rake/testtask'
18
+ require_relative 'lib/rubocop/cop/generator'
18
19
 
19
20
  Rake::TestTask.new do |t|
20
21
  t.libs << 'test'
@@ -36,3 +37,31 @@ task default: %i[
36
37
  test
37
38
  internal_investigation
38
39
  ]
40
+
41
+ desc 'Generate a new cop template'
42
+ task :new_cop, [:cop] do |_task, args|
43
+ require 'rubocop'
44
+
45
+ cop_name = args.fetch(:cop) do
46
+ warn 'usage: bundle exec rake new_cop[Department/Name]'
47
+ exit!
48
+ end
49
+
50
+ github_user = `git config github.user`.chop
51
+ github_user = 'your_id' if github_user.empty?
52
+
53
+ generator = RuboCop::Cop::Generator.new(cop_name, github_user)
54
+
55
+ generator.write_source
56
+ generator.write_test
57
+ generator.inject_require(root_file_path: 'lib/rubocop/cop/minitest_cops.rb')
58
+ generator.inject_config(config_file_path: 'config/default.yml', version_added: bump_minor_version)
59
+
60
+ puts generator.todo
61
+ end
62
+
63
+ def bump_minor_version
64
+ major, minor, _patch = RuboCop::Minitest::VERSION.split('.')
65
+
66
+ "#{major}.#{minor.succ}"
67
+ end
@@ -6,106 +6,185 @@ Minitest:
6
6
 
7
7
  Minitest/AssertEmpty:
8
8
  Description: 'This cop enforces the test to use `assert_empty` instead of using `assert(object.empty?)`.'
9
- StyleGuide: 'https://github.com/rubocop-hq/minitest-style-guide#assert-empty'
9
+ StyleGuide: 'https://minitest.rubystyle.guide#assert-empty'
10
10
  Enabled: true
11
11
  VersionAdded: '0.2'
12
12
 
13
13
  Minitest/AssertEmptyLiteral:
14
14
  Description: 'This cop enforces the test to use `assert_empty` instead of using `assert([], object)` or `assert({}, object)`.'
15
15
  Enabled: true
16
+ SafeAutoCorrect: false
16
17
  VersionAdded: '0.5'
18
+ VersionChanged: '0.10'
17
19
 
18
20
  Minitest/AssertEqual:
19
21
  Description: 'This cop enforces the test to use `assert_equal` instead of using `assert(expected == actual)`.'
20
- StyleGuide: 'https://github.com/rubocop-hq/minitest-style-guide#assert-equal-arguments-order'
22
+ StyleGuide: 'https://minitest.rubystyle.guide#assert-equal-arguments-order'
21
23
  Enabled: true
22
24
  VersionAdded: '0.4'
23
25
 
26
+ Minitest/AssertInDelta:
27
+ Description: 'This cop enforces the test to use `assert_in_delta` instead of using `assert_equal` to compare floats.'
28
+ StyleGuide: 'https://minitest.rubystyle.guide/#assert-in-delta'
29
+ Enabled: 'pending'
30
+ VersionAdded: '0.10'
31
+
32
+ Minitest/AssertionInLifecycleHook:
33
+ Description: 'This cop checks for usage of assertions in lifecycle hooks.'
34
+ Enabled: 'pending'
35
+ VersionAdded: '0.10'
36
+
24
37
  Minitest/AssertMatch:
25
38
  Description: 'This cop enforces the test to use `assert_match` instead of using `assert(matcher.match(object))`.'
26
- StyleGuide: 'https://github.com/rubocop-hq/minitest-style-guide#assert-match'
39
+ StyleGuide: 'https://minitest.rubystyle.guide#assert-match'
27
40
  Enabled: true
28
41
  VersionAdded: '0.6'
29
42
 
30
43
  Minitest/AssertIncludes:
31
44
  Description: 'This cop enforces the test to use `assert_includes` instead of using `assert(collection.include?(object))`.'
32
- StyleGuide: 'https://github.com/rubocop-hq/minitest-style-guide#assert-includes'
45
+ StyleGuide: 'https://minitest.rubystyle.guide#assert-includes'
33
46
  Enabled: true
34
47
  VersionAdded: '0.2'
35
48
 
36
49
  Minitest/AssertInstanceOf:
37
50
  Description: 'This cop enforces the test to use `assert_instance_of(Class, object)` over `assert(object.instance_of?(Class))`'
38
- StyleGuide: 'https://github.com/rubocop-hq/minitest-style-guide#assert-instance-of'
51
+ StyleGuide: 'https://minitest.rubystyle.guide#assert-instance-of'
39
52
  Enabled: true
40
53
  VersionAdded: '0.4'
41
54
 
55
+ Minitest/AssertKindOf:
56
+ Description: 'This cop enforces the test to use `assert_kind_of(Class, object)` over `assert(object.kind_of?(Class))`'
57
+ StyleGuide: 'https://github.com/rubocop-hq/minitest-style-guide#assert-kind-of'
58
+ Enabled: 'pending'
59
+ VersionAdded: '0.10'
60
+
42
61
  Minitest/AssertNil:
43
62
  Description: 'This cop enforces the test to use `assert_nil` instead of using `assert_equal(nil, something)`.'
44
- StyleGuide: 'https://github.com/rubocop-hq/minitest-style-guide#assert-nil'
63
+ StyleGuide: 'https://minitest.rubystyle.guide#assert-nil'
45
64
  Enabled: true
46
65
  VersionAdded: '0.1'
47
66
 
67
+ Minitest/AssertOutput:
68
+ Description: 'This cop checks for opportunities to use `assert_output`.'
69
+ StyleGuide: 'https://minitest.rubystyle.guide/#assert-output'
70
+ Enabled: 'pending'
71
+ VersionAdded: '0.10'
72
+
73
+ Minitest/AssertPathExists:
74
+ Description: 'This cop enforces the test to use `assert_path_exists` instead of using `assert(File.exist?(path))`.'
75
+ StyleGuide: 'https://minitest.rubystyle.guide/#assert-path-exists'
76
+ Enabled: 'pending'
77
+ VersionAdded: '0.10'
78
+
48
79
  Minitest/AssertRespondTo:
49
80
  Description: 'This cop enforces the test to use `assert_respond_to(object, :do_something)` over `assert(object.respond_to?(:do_something))`.'
50
- StyleGuide: 'https://github.com/rubocop-hq/minitest-style-guide#assert-responds-to-method'
81
+ StyleGuide: 'https://minitest.rubystyle.guide#assert-responds-to-method'
51
82
  Enabled: true
52
83
  VersionAdded: '0.3'
53
84
 
85
+ Minitest/AssertSilent:
86
+ Description: "This cop enforces the test to use `assert_silent { ... }` instead of using `assert_output('', '') { ... }`."
87
+ StyleGuide: 'https://github.com/rubocop-hq/minitest-style-guide#assert-silent'
88
+ Enabled: 'pending'
89
+ VersionAdded: '0.10'
90
+
54
91
  Minitest/AssertTruthy:
55
92
  Description: 'This cop enforces the test to use `assert(actual)` instead of using `assert_equal(true, actual)`.'
56
- StyleGuide: 'https://github.com/rubocop-hq/minitest-style-guide#assert-truthy'
93
+ StyleGuide: 'https://minitest.rubystyle.guide#assert-truthy'
57
94
  Enabled: true
58
95
  VersionAdded: '0.2'
59
96
 
60
97
  Minitest/GlobalExpectations:
61
98
  Description: 'This cop checks for deprecated global expectations.'
99
+ StyleGuide: 'https://minitest.rubystyle.guide#global-expectations'
62
100
  Enabled: true
63
101
  VersionAdded: '0.7'
64
102
 
103
+ Minitest/LiteralAsActualArgument:
104
+ Description: 'This cop enforces correct order of `expected` and `actual` arguments for `assert_equal`.'
105
+ StyleGuide: 'https://minitest.rubystyle.guide/#assert-equal-arguments-order'
106
+ Enabled: 'pending'
107
+ VersionAdded: '0.10'
108
+
109
+ Minitest/MultipleAssertions:
110
+ Description: 'This cop checks if test cases contain too many assertion calls.'
111
+ Enabled: 'pending'
112
+ VersionAdded: '0.10'
113
+ Max: 3
114
+
65
115
  Minitest/RefuteEmpty:
66
116
  Description: 'This cop enforces to use `refute_empty` instead of using `refute(object.empty?)`.'
67
- StyleGuide: 'https://github.com/rubocop-hq/minitest-style-guide#refute-empty'
117
+ StyleGuide: 'https://minitest.rubystyle.guide#refute-empty'
68
118
  Enabled: true
69
119
  VersionAdded: '0.3'
70
120
 
71
121
  Minitest/RefuteEqual:
72
122
  Description: 'Check if your test uses `refute_equal` instead of `assert(expected != object)` or `assert(! expected == object))`.'
73
- StyleGuide: 'https://github.com/rubocop-hq/minitest-style-guide#refute-equal'
123
+ StyleGuide: 'https://minitest.rubystyle.guide#refute-equal'
74
124
  Enabled: true
75
125
  VersionAdded: '0.3'
76
126
 
77
127
  Minitest/RefuteFalse:
78
128
  Description: 'Check if your test uses `refute(actual)` instead of `assert_equal(false, actual)`.'
79
- StyleGuide: 'https://github.com/rubocop-hq/minitest-style-guide#refute-false'
129
+ StyleGuide: 'https://minitest.rubystyle.guide#refute-false'
80
130
  Enabled: true
81
131
  VersionAdded: '0.3'
82
132
 
133
+ Minitest/RefuteInDelta:
134
+ Description: 'This cop enforces the test to use `refute_in_delta` instead of using `refute_equal` to compare floats.'
135
+ StyleGuide: 'https://minitest.rubystyle.guide/#refute-in-delta'
136
+ Enabled: 'pending'
137
+ VersionAdded: '0.10'
138
+
83
139
  Minitest/RefuteIncludes:
84
140
  Description: 'This cop enforces the test to use `refute_includes` instead of using `refute(collection.include?(object))`.'
85
- StyleGuide: 'https://github.com/rubocop-hq/minitest-style-guide#refute-includes'
141
+ StyleGuide: 'https://minitest.rubystyle.guide#refute-includes'
86
142
  Enabled: true
87
143
  VersionAdded: '0.3'
88
144
 
89
145
  Minitest/RefuteMatch:
90
146
  Description: 'This cop enforces the test to use `refute_match` instead of using `refute(matcher.match(object))`.'
91
- StyleGuide: 'https://github.com/rubocop-hq/minitest-style-guide#refute-match'
147
+ StyleGuide: 'https://minitest.rubystyle.guide#refute-match'
92
148
  Enabled: true
93
149
  VersionAdded: '0.6'
94
150
 
95
151
  Minitest/RefuteInstanceOf:
96
152
  Description: 'This cop enforces the test to use `refute_instance_of(Class, object)` over `refute(object.instance_of?(Class))`.'
97
- StyleGuide: 'https://github.com/rubocop-hq/minitest-style-guide#refute-instance-of'
153
+ StyleGuide: 'https://minitest.rubystyle.guide#refute-instance-of'
98
154
  Enabled: true
99
155
  VersionAdded: '0.4'
100
156
 
157
+ Minitest/RefuteKindOf:
158
+ Description: 'This cop enforces the test to use `refute_kind_of(Class, object)` over `refute(object.kind_of?(Class))`.'
159
+ StyleGuide: 'https://github.com/rubocop-hq/minitest-style-guide#refute-kind-of'
160
+ Enabled: 'pending'
161
+ VersionAdded: '0.10'
162
+
101
163
  Minitest/RefuteNil:
102
164
  Description: 'This cop enforces the test to use `refute_nil` instead of using `refute_equal(nil, something)`.'
103
- StyleGuide: 'https://github.com/rubocop-hq/minitest-style-guide#refute-nil'
165
+ StyleGuide: 'https://minitest.rubystyle.guide#refute-nil'
104
166
  Enabled: true
105
167
  VersionAdded: '0.2'
106
168
 
169
+ Minitest/RefutePathExists:
170
+ Description: 'This cop enforces the test to use `refute_path_exists` instead of using `refute(File.exist?(path))`.'
171
+ StyleGuide: 'https://minitest.rubystyle.guide/#refute-path-exists'
172
+ Enabled: 'pending'
173
+ VersionAdded: '0.10'
174
+
107
175
  Minitest/RefuteRespondTo:
108
176
  Description: 'This cop enforces the test to use `refute_respond_to(object, :do_something)` over `refute(object.respond_to?(:do_something))`.'
109
- StyleGuide: 'https://github.com/rubocop-hq/minitest-style-guide#refute-respond-to'
177
+ StyleGuide: 'https://minitest.rubystyle.guide#refute-respond-to'
110
178
  Enabled: true
111
179
  VersionAdded: '0.4'
180
+
181
+ Minitest/TestMethodName:
182
+ Description: 'This cop enforces that test method names start with `test_` prefix.'
183
+ Enabled: 'pending'
184
+ VersionAdded: '0.10'
185
+
186
+ Minitest/UnspecifiedException:
187
+ Description: 'This cop checks for a specified error in `assert_raises`.'
188
+ StyleGuide: 'https://minitest.rubystyle.guide#unspecified-exception'
189
+ Enabled: 'pending'
190
+ VersionAdded: '0.10'
@@ -0,0 +1,7 @@
1
+ name: rubocop-minitest
2
+ title: RuboCop Minitest
3
+ # We always provide version without patch here (e.g. 1.1),
4
+ # as patch versions should not appear in the docs.
5
+ version: 0.10
6
+ nav:
7
+ - modules/ROOT/nav.adoc
@@ -0,0 +1,6 @@
1
+ * xref:index.adoc[Home]
2
+ * xref:installation.adoc[Installation]
3
+ * xref:usage.adoc[Usage]
4
+ * xref:cops.adoc[Cops]
5
+ * Cops Documentation
6
+ ** xref:cops_minitest.adoc[Minitest]
@@ -0,0 +1,37 @@
1
+ // START_COP_LIST
2
+
3
+ = Department xref:cops_minitest.adoc[Minitest]
4
+
5
+ * xref:cops_minitest.adoc#minitestassertempty[Minitest/AssertEmpty]
6
+ * xref:cops_minitest.adoc#minitestassertemptyliteral[Minitest/AssertEmptyLiteral]
7
+ * xref:cops_minitest.adoc#minitestassertequal[Minitest/AssertEqual]
8
+ * xref:cops_minitest.adoc#minitestassertindelta[Minitest/AssertInDelta]
9
+ * xref:cops_minitest.adoc#minitestassertincludes[Minitest/AssertIncludes]
10
+ * xref:cops_minitest.adoc#minitestassertinstanceof[Minitest/AssertInstanceOf]
11
+ * xref:cops_minitest.adoc#minitestassertkindof[Minitest/AssertKindOf]
12
+ * xref:cops_minitest.adoc#minitestassertmatch[Minitest/AssertMatch]
13
+ * xref:cops_minitest.adoc#minitestassertnil[Minitest/AssertNil]
14
+ * xref:cops_minitest.adoc#minitestassertoutput[Minitest/AssertOutput]
15
+ * xref:cops_minitest.adoc#minitestassertpathexists[Minitest/AssertPathExists]
16
+ * xref:cops_minitest.adoc#minitestassertrespondto[Minitest/AssertRespondTo]
17
+ * xref:cops_minitest.adoc#minitestassertsilent[Minitest/AssertSilent]
18
+ * xref:cops_minitest.adoc#minitestasserttruthy[Minitest/AssertTruthy]
19
+ * xref:cops_minitest.adoc#minitestassertioninlifecyclehook[Minitest/AssertionInLifecycleHook]
20
+ * xref:cops_minitest.adoc#minitestglobalexpectations[Minitest/GlobalExpectations]
21
+ * xref:cops_minitest.adoc#minitestliteralasactualargument[Minitest/LiteralAsActualArgument]
22
+ * xref:cops_minitest.adoc#minitestmultipleassertions[Minitest/MultipleAssertions]
23
+ * xref:cops_minitest.adoc#minitestrefuteempty[Minitest/RefuteEmpty]
24
+ * xref:cops_minitest.adoc#minitestrefuteequal[Minitest/RefuteEqual]
25
+ * xref:cops_minitest.adoc#minitestrefutefalse[Minitest/RefuteFalse]
26
+ * xref:cops_minitest.adoc#minitestrefuteindelta[Minitest/RefuteInDelta]
27
+ * xref:cops_minitest.adoc#minitestrefuteincludes[Minitest/RefuteIncludes]
28
+ * xref:cops_minitest.adoc#minitestrefuteinstanceof[Minitest/RefuteInstanceOf]
29
+ * xref:cops_minitest.adoc#minitestrefutekindof[Minitest/RefuteKindOf]
30
+ * xref:cops_minitest.adoc#minitestrefutematch[Minitest/RefuteMatch]
31
+ * xref:cops_minitest.adoc#minitestrefutenil[Minitest/RefuteNil]
32
+ * xref:cops_minitest.adoc#minitestrefutepathexists[Minitest/RefutePathExists]
33
+ * xref:cops_minitest.adoc#minitestrefuterespondto[Minitest/RefuteRespondTo]
34
+ * xref:cops_minitest.adoc#minitesttestmethodname[Minitest/TestMethodName]
35
+ * xref:cops_minitest.adoc#minitestunspecifiedexception[Minitest/UnspecifiedException]
36
+
37
+ // END_COP_LIST
@@ -0,0 +1,1014 @@
1
+ = Minitest
2
+
3
+ == Minitest/AssertEmpty
4
+
5
+ |===
6
+ | Enabled by default | Safe | Supports autocorrection | VersionAdded | VersionChanged
7
+
8
+ | Enabled
9
+ | Yes
10
+ | Yes
11
+ | 0.2
12
+ | -
13
+ |===
14
+
15
+ This cop enforces the test to use `assert_empty`
16
+ instead of using `assert(object.empty?)`.
17
+
18
+ === Examples
19
+
20
+ [source,ruby]
21
+ ----
22
+ # bad
23
+ assert(object.empty?)
24
+ assert(object.empty?, 'message')
25
+
26
+ # good
27
+ assert_empty(object)
28
+ assert_empty(object, 'message')
29
+ ----
30
+
31
+ === References
32
+
33
+ * https://minitest.rubystyle.guide#assert-empty
34
+
35
+ == Minitest/AssertEmptyLiteral
36
+
37
+ |===
38
+ | Enabled by default | Safe | Supports autocorrection | VersionAdded | VersionChanged
39
+
40
+ | Enabled
41
+ | Yes
42
+ | Yes (Unsafe)
43
+ | 0.5
44
+ | 0.10
45
+ |===
46
+
47
+ This cop enforces the test to use `assert_empty`
48
+ instead of using `assert([], object)`.
49
+
50
+ === Examples
51
+
52
+ [source,ruby]
53
+ ----
54
+ # bad
55
+ assert([], object)
56
+ assert({}, object)
57
+
58
+ # good
59
+ assert_empty(object)
60
+ ----
61
+
62
+ == Minitest/AssertEqual
63
+
64
+ |===
65
+ | Enabled by default | Safe | Supports autocorrection | VersionAdded | VersionChanged
66
+
67
+ | Enabled
68
+ | Yes
69
+ | Yes
70
+ | 0.4
71
+ | -
72
+ |===
73
+
74
+ This cop enforces the use of `assert_equal(expected, actual)`
75
+ over `assert(expected == actual)`.
76
+
77
+ === Examples
78
+
79
+ [source,ruby]
80
+ ----
81
+ # bad
82
+ assert("rubocop-minitest" == actual)
83
+
84
+ # good
85
+ assert_equal("rubocop-minitest", actual)
86
+ ----
87
+
88
+ === References
89
+
90
+ * https://minitest.rubystyle.guide#assert-equal-arguments-order
91
+
92
+ == Minitest/AssertInDelta
93
+
94
+ |===
95
+ | Enabled by default | Safe | Supports autocorrection | VersionAdded | VersionChanged
96
+
97
+ | Pending
98
+ | Yes
99
+ | Yes
100
+ | 0.10
101
+ | -
102
+ |===
103
+
104
+ This cop enforces the test to use `assert_in_delta`
105
+ instead of using `assert_equal` to compare floats.
106
+
107
+ === Examples
108
+
109
+ [source,ruby]
110
+ ----
111
+ # bad
112
+ assert_equal(0.2, actual)
113
+ assert_equal(0.2, actual, 'message')
114
+
115
+ # good
116
+ assert_in_delta(0.2, actual)
117
+ assert_in_delta(0.2, actual, 0.001, 'message')
118
+ ----
119
+
120
+ === References
121
+
122
+ * https://minitest.rubystyle.guide/#assert-in-delta
123
+
124
+ == Minitest/AssertIncludes
125
+
126
+ |===
127
+ | Enabled by default | Safe | Supports autocorrection | VersionAdded | VersionChanged
128
+
129
+ | Enabled
130
+ | Yes
131
+ | Yes
132
+ | 0.2
133
+ | -
134
+ |===
135
+
136
+ This cop enforces the test to use `assert_includes`
137
+ instead of using `assert(collection.include?(object))`.
138
+
139
+ === Examples
140
+
141
+ [source,ruby]
142
+ ----
143
+ # bad
144
+ assert(collection.include?(object))
145
+ assert(collection.include?(object), 'message')
146
+
147
+ # good
148
+ assert_includes(collection, object)
149
+ assert_includes(collection, object, 'message')
150
+ ----
151
+
152
+ === References
153
+
154
+ * https://minitest.rubystyle.guide#assert-includes
155
+
156
+ == Minitest/AssertInstanceOf
157
+
158
+ |===
159
+ | Enabled by default | Safe | Supports autocorrection | VersionAdded | VersionChanged
160
+
161
+ | Enabled
162
+ | Yes
163
+ | Yes
164
+ | 0.4
165
+ | -
166
+ |===
167
+
168
+ This cop enforces the test to use `assert_instance_of(Class, object)`
169
+ over `assert(object.instance_of?(Class))`.
170
+
171
+ === Examples
172
+
173
+ [source,ruby]
174
+ ----
175
+ # bad
176
+ assert(object.instance_of?(Class))
177
+ assert(object.instance_of?(Class), 'message')
178
+
179
+ # good
180
+ assert_instance_of(Class, object)
181
+ assert_instance_of(Class, object, 'message')
182
+ ----
183
+
184
+ === References
185
+
186
+ * https://minitest.rubystyle.guide#assert-instance-of
187
+
188
+ == Minitest/AssertKindOf
189
+
190
+ |===
191
+ | Enabled by default | Safe | Supports autocorrection | VersionAdded | VersionChanged
192
+
193
+ | Pending
194
+ | Yes
195
+ | Yes
196
+ | 0.10
197
+ | -
198
+ |===
199
+
200
+ This cop enforces the test to use `assert_kind_of(Class, object)`
201
+ over `assert(object.kind_of?(Class))`.
202
+
203
+ === Examples
204
+
205
+ [source,ruby]
206
+ ----
207
+ # bad
208
+ assert(object.kind_of?(Class))
209
+ assert(object.kind_of?(Class), 'message')
210
+
211
+ # good
212
+ assert_kind_of(Class, object)
213
+ assert_kind_of(Class, object, 'message')
214
+ ----
215
+
216
+ === References
217
+
218
+ * https://github.com/rubocop-hq/minitest-style-guide#assert-kind-of
219
+
220
+ == Minitest/AssertMatch
221
+
222
+ |===
223
+ | Enabled by default | Safe | Supports autocorrection | VersionAdded | VersionChanged
224
+
225
+ | Enabled
226
+ | Yes
227
+ | Yes
228
+ | 0.6
229
+ | -
230
+ |===
231
+
232
+ This cop enforces the test to use `assert_match`
233
+ instead of using `assert(matcher.match(string))`.
234
+
235
+ === Examples
236
+
237
+ [source,ruby]
238
+ ----
239
+ # bad
240
+ assert(matcher.match(string))
241
+ assert(matcher.match(string), 'message')
242
+
243
+ # good
244
+ assert_match(regex, string)
245
+ assert_match(matcher, string, 'message')
246
+ ----
247
+
248
+ === References
249
+
250
+ * https://minitest.rubystyle.guide#assert-match
251
+
252
+ == Minitest/AssertNil
253
+
254
+ |===
255
+ | Enabled by default | Safe | Supports autocorrection | VersionAdded | VersionChanged
256
+
257
+ | Enabled
258
+ | Yes
259
+ | Yes
260
+ | 0.1
261
+ | -
262
+ |===
263
+
264
+ This cop enforces the test to use `assert_nil`
265
+ instead of using `assert_equal(nil, something)`.
266
+
267
+ === Examples
268
+
269
+ [source,ruby]
270
+ ----
271
+ # bad
272
+ assert_equal(nil, actual)
273
+ assert_equal(nil, actual, 'message')
274
+
275
+ # good
276
+ assert_nil(actual)
277
+ assert_nil(actual, 'message')
278
+ ----
279
+
280
+ === References
281
+
282
+ * https://minitest.rubystyle.guide#assert-nil
283
+
284
+ == Minitest/AssertOutput
285
+
286
+ |===
287
+ | Enabled by default | Safe | Supports autocorrection | VersionAdded | VersionChanged
288
+
289
+ | Pending
290
+ | Yes
291
+ | No
292
+ | 0.10
293
+ | -
294
+ |===
295
+
296
+ This cop checks for opportunities to use `assert_output`.
297
+
298
+ === Examples
299
+
300
+ [source,ruby]
301
+ ----
302
+ # bad
303
+ $stdout = StringIO.new
304
+ puts object.method
305
+ $stdout.rewind
306
+ assert_match expected, $stdout.read
307
+
308
+ # good
309
+ assert_output(expected) { puts object.method }
310
+ ----
311
+
312
+ === References
313
+
314
+ * https://minitest.rubystyle.guide/#assert-output
315
+
316
+ == Minitest/AssertPathExists
317
+
318
+ |===
319
+ | Enabled by default | Safe | Supports autocorrection | VersionAdded | VersionChanged
320
+
321
+ | Pending
322
+ | Yes
323
+ | Yes
324
+ | 0.10
325
+ | -
326
+ |===
327
+
328
+ This cop enforces the test to use `assert_path_exists`
329
+ instead of using `assert(File.exist?(path))`.
330
+
331
+ === Examples
332
+
333
+ [source,ruby]
334
+ ----
335
+ # bad
336
+ assert(File.exist?(path))
337
+ assert(File.exist?(path), 'message')
338
+
339
+ # good
340
+ assert_path_exists(path)
341
+ assert_path_exists(path, 'message')
342
+ ----
343
+
344
+ === References
345
+
346
+ * https://minitest.rubystyle.guide/#assert-path-exists
347
+
348
+ == Minitest/AssertRespondTo
349
+
350
+ |===
351
+ | Enabled by default | Safe | Supports autocorrection | VersionAdded | VersionChanged
352
+
353
+ | Enabled
354
+ | Yes
355
+ | Yes
356
+ | 0.3
357
+ | -
358
+ |===
359
+
360
+ This cop enforces the use of `assert_respond_to(object, :do_something)`
361
+ over `assert(object.respond_to?(:do_something))`.
362
+
363
+ === Examples
364
+
365
+ [source,ruby]
366
+ ----
367
+ # bad
368
+ assert(object.respond_to?(:do_something))
369
+ assert(object.respond_to?(:do_something), 'message')
370
+ assert(respond_to?(:do_something))
371
+
372
+ # good
373
+ assert_respond_to(object, :do_something)
374
+ assert_respond_to(object, :do_something, 'message')
375
+ assert_respond_to(self, :do_something)
376
+ ----
377
+
378
+ === References
379
+
380
+ * https://minitest.rubystyle.guide#assert-responds-to-method
381
+
382
+ == Minitest/AssertSilent
383
+
384
+ |===
385
+ | Enabled by default | Safe | Supports autocorrection | VersionAdded | VersionChanged
386
+
387
+ | Pending
388
+ | Yes
389
+ | Yes
390
+ | 0.10
391
+ | -
392
+ |===
393
+
394
+ This cop enforces the test to use `assert_silent { ... }`
395
+ instead of using `assert_output('', '') { ... }`.
396
+
397
+ === Examples
398
+
399
+ [source,ruby]
400
+ ----
401
+ # bad
402
+ assert_output('', '') { puts object.do_something }
403
+
404
+ # good
405
+ assert_silent { puts object.do_something }
406
+ ----
407
+
408
+ === References
409
+
410
+ * https://github.com/rubocop-hq/minitest-style-guide#assert-silent
411
+
412
+ == Minitest/AssertTruthy
413
+
414
+ |===
415
+ | Enabled by default | Safe | Supports autocorrection | VersionAdded | VersionChanged
416
+
417
+ | Enabled
418
+ | Yes
419
+ | Yes
420
+ | 0.2
421
+ | -
422
+ |===
423
+
424
+ This cop enforces the test to use `assert(actual)`
425
+ instead of using `assert_equal(true, actual)`.
426
+
427
+ === Examples
428
+
429
+ [source,ruby]
430
+ ----
431
+ # bad
432
+ assert_equal(true, actual)
433
+ assert_equal(true, actual, 'message')
434
+
435
+ # good
436
+ assert(actual)
437
+ assert(actual, 'message')
438
+ ----
439
+
440
+ === References
441
+
442
+ * https://minitest.rubystyle.guide#assert-truthy
443
+
444
+ == Minitest/AssertionInLifecycleHook
445
+
446
+ |===
447
+ | Enabled by default | Safe | Supports autocorrection | VersionAdded | VersionChanged
448
+
449
+ | Pending
450
+ | Yes
451
+ | No
452
+ | 0.10
453
+ | -
454
+ |===
455
+
456
+ This cop checks for usage of assertions in lifecycle hooks.
457
+
458
+ === Examples
459
+
460
+ [source,ruby]
461
+ ----
462
+ # bad
463
+ class FooTest < Minitest::Test
464
+ def setup
465
+ assert_equal(foo, bar)
466
+ end
467
+ end
468
+
469
+ # good
470
+ class FooTest < Minitest::Test
471
+ def test_something
472
+ assert_equal(foo, bar)
473
+ end
474
+ end
475
+ ----
476
+
477
+ == Minitest/GlobalExpectations
478
+
479
+ |===
480
+ | Enabled by default | Safe | Supports autocorrection | VersionAdded | VersionChanged
481
+
482
+ | Enabled
483
+ | Yes
484
+ | Yes
485
+ | 0.7
486
+ | -
487
+ |===
488
+
489
+ This cop checks for deprecated global expectations
490
+ and autocorrects them to use expect format.
491
+
492
+ === Examples
493
+
494
+ [source,ruby]
495
+ ----
496
+ # bad
497
+ musts.must_equal expected_musts
498
+ wonts.wont_match expected_wonts
499
+ musts.must_raise TypeError
500
+
501
+ # good
502
+ _(musts).must_equal expected_musts
503
+ _(wonts).wont_match expected_wonts
504
+ _ { musts }.must_raise TypeError
505
+ ----
506
+
507
+ === References
508
+
509
+ * https://minitest.rubystyle.guide#global-expectations
510
+
511
+ == Minitest/LiteralAsActualArgument
512
+
513
+ |===
514
+ | Enabled by default | Safe | Supports autocorrection | VersionAdded | VersionChanged
515
+
516
+ | Pending
517
+ | Yes
518
+ | Yes
519
+ | 0.10
520
+ | -
521
+ |===
522
+
523
+ This cop enforces correct order of expected and
524
+ actual arguments for `assert_equal`.
525
+
526
+ === Examples
527
+
528
+ [source,ruby]
529
+ ----
530
+ # bad
531
+ assert_equal foo, 2
532
+ assert_equal foo, [1, 2]
533
+ assert_equal foo, [1, 2], 'message'
534
+
535
+ # good
536
+ assert_equal 2, foo
537
+ assert_equal [1, 2], foo
538
+ assert_equal [1, 2], foo, 'message'
539
+ ----
540
+
541
+ === References
542
+
543
+ * https://minitest.rubystyle.guide/#assert-equal-arguments-order
544
+
545
+ == Minitest/MultipleAssertions
546
+
547
+ |===
548
+ | Enabled by default | Safe | Supports autocorrection | VersionAdded | VersionChanged
549
+
550
+ | Pending
551
+ | Yes
552
+ | No
553
+ | 0.10
554
+ | -
555
+ |===
556
+
557
+ This cop checks if test cases contain too many assertion calls.
558
+ The maximum allowed assertion calls is configurable.
559
+
560
+ === Examples
561
+
562
+ ==== Max: 1
563
+
564
+ [source,ruby]
565
+ ----
566
+ # bad
567
+ class FooTest < Minitest::Test
568
+ def test_asserts_twice
569
+ assert_equal(42, do_something)
570
+ assert_empty(array)
571
+ end
572
+ end
573
+
574
+ # good
575
+ class FooTest < Minitest::Test
576
+ def test_asserts_once
577
+ assert_equal(42, do_something)
578
+ end
579
+
580
+ def test_another_asserts_once
581
+ assert_empty(array)
582
+ end
583
+ end
584
+ ----
585
+
586
+ === Configurable attributes
587
+
588
+ |===
589
+ | Name | Default value | Configurable values
590
+
591
+ | Max
592
+ | `3`
593
+ | Integer
594
+ |===
595
+
596
+ == Minitest/RefuteEmpty
597
+
598
+ |===
599
+ | Enabled by default | Safe | Supports autocorrection | VersionAdded | VersionChanged
600
+
601
+ | Enabled
602
+ | Yes
603
+ | Yes
604
+ | 0.3
605
+ | -
606
+ |===
607
+
608
+ This cop enforces to use `refute_empty` instead of
609
+ using `refute(object.empty?)`.
610
+
611
+ === Examples
612
+
613
+ [source,ruby]
614
+ ----
615
+ # bad
616
+ refute(object.empty?)
617
+ refute(object.empty?, 'message')
618
+
619
+ # good
620
+ refute_empty(object)
621
+ refute_empty(object, 'message')
622
+ ----
623
+
624
+ === References
625
+
626
+ * https://minitest.rubystyle.guide#refute-empty
627
+
628
+ == Minitest/RefuteEqual
629
+
630
+ |===
631
+ | Enabled by default | Safe | Supports autocorrection | VersionAdded | VersionChanged
632
+
633
+ | Enabled
634
+ | Yes
635
+ | Yes
636
+ | 0.3
637
+ | -
638
+ |===
639
+
640
+ This cop enforces the use of `refute_equal(expected, object)`
641
+ over `assert_equal(expected != actual)` or `assert(! expected == actual)`.
642
+
643
+ === Examples
644
+
645
+ [source,ruby]
646
+ ----
647
+ # bad
648
+ assert("rubocop-minitest" != actual)
649
+ assert(! "rubocop-minitest" == actual)
650
+
651
+ # good
652
+ refute_equal("rubocop-minitest", actual)
653
+ ----
654
+
655
+ === References
656
+
657
+ * https://minitest.rubystyle.guide#refute-equal
658
+
659
+ == Minitest/RefuteFalse
660
+
661
+ |===
662
+ | Enabled by default | Safe | Supports autocorrection | VersionAdded | VersionChanged
663
+
664
+ | Enabled
665
+ | Yes
666
+ | Yes
667
+ | 0.3
668
+ | -
669
+ |===
670
+
671
+ This cop enforces the use of `refute(object)`
672
+ over `assert_equal(false, object)`.
673
+
674
+ === Examples
675
+
676
+ [source,ruby]
677
+ ----
678
+ # bad
679
+ assert_equal(false, actual)
680
+ assert_equal(false, actual, 'message')
681
+
682
+ assert(!test)
683
+ assert(!test, 'message')
684
+
685
+ # good
686
+ refute(actual)
687
+ refute(actual, 'message')
688
+ ----
689
+
690
+ === References
691
+
692
+ * https://minitest.rubystyle.guide#refute-false
693
+
694
+ == Minitest/RefuteInDelta
695
+
696
+ |===
697
+ | Enabled by default | Safe | Supports autocorrection | VersionAdded | VersionChanged
698
+
699
+ | Pending
700
+ | Yes
701
+ | Yes
702
+ | 0.10
703
+ | -
704
+ |===
705
+
706
+ This cop enforces the test to use `refute_in_delta`
707
+ instead of using `refute_equal` to compare floats.
708
+
709
+ === Examples
710
+
711
+ [source,ruby]
712
+ ----
713
+ # bad
714
+ refute_equal(0.2, actual)
715
+ refute_equal(0.2, actual, 'message')
716
+
717
+ # good
718
+ refute_in_delta(0.2, actual)
719
+ refute_in_delta(0.2, actual, 0.001, 'message')
720
+ ----
721
+
722
+ === References
723
+
724
+ * https://minitest.rubystyle.guide/#refute-in-delta
725
+
726
+ == Minitest/RefuteIncludes
727
+
728
+ |===
729
+ | Enabled by default | Safe | Supports autocorrection | VersionAdded | VersionChanged
730
+
731
+ | Enabled
732
+ | Yes
733
+ | Yes
734
+ | 0.3
735
+ | -
736
+ |===
737
+
738
+ This cop enforces the test to use `refute_includes`
739
+ instead of using `refute(collection.include?(object))`.
740
+
741
+ === Examples
742
+
743
+ [source,ruby]
744
+ ----
745
+ # bad
746
+ refute(collection.include?(object))
747
+ refute(collection.include?(object), 'message')
748
+
749
+ # good
750
+ refute_includes(collection, object)
751
+ refute_includes(collection, object, 'message')
752
+ ----
753
+
754
+ === References
755
+
756
+ * https://minitest.rubystyle.guide#refute-includes
757
+
758
+ == Minitest/RefuteInstanceOf
759
+
760
+ |===
761
+ | Enabled by default | Safe | Supports autocorrection | VersionAdded | VersionChanged
762
+
763
+ | Enabled
764
+ | Yes
765
+ | Yes
766
+ | 0.4
767
+ | -
768
+ |===
769
+
770
+ This cop enforces the use of `refute_instance_of(Class, object)`
771
+ over `refute(object.instance_of?(Class))`.
772
+
773
+ === Examples
774
+
775
+ [source,ruby]
776
+ ----
777
+ # bad
778
+ refute(object.instance_of?(Class))
779
+ refute(object.instance_of?(Class), 'message')
780
+
781
+ # good
782
+ refute_instance_of(Class, object)
783
+ refute_instance_of(Class, object, 'message')
784
+ ----
785
+
786
+ === References
787
+
788
+ * https://minitest.rubystyle.guide#refute-instance-of
789
+
790
+ == Minitest/RefuteKindOf
791
+
792
+ |===
793
+ | Enabled by default | Safe | Supports autocorrection | VersionAdded | VersionChanged
794
+
795
+ | Pending
796
+ | Yes
797
+ | Yes
798
+ | 0.10
799
+ | -
800
+ |===
801
+
802
+ This cop enforces the use of `refute_kind_of(Class, object)`
803
+ over `refute(object.kind_of?(Class))`.
804
+
805
+ === Examples
806
+
807
+ [source,ruby]
808
+ ----
809
+ # bad
810
+ refute(object.kind_of?(Class))
811
+ refute(object.kind_of?(Class), 'message')
812
+
813
+ # good
814
+ refute_kind_of(Class, object)
815
+ refute_kind_of(Class, object, 'message')
816
+ ----
817
+
818
+ === References
819
+
820
+ * https://github.com/rubocop-hq/minitest-style-guide#refute-kind-of
821
+
822
+ == Minitest/RefuteMatch
823
+
824
+ |===
825
+ | Enabled by default | Safe | Supports autocorrection | VersionAdded | VersionChanged
826
+
827
+ | Enabled
828
+ | Yes
829
+ | Yes
830
+ | 0.6
831
+ | -
832
+ |===
833
+
834
+ This cop enforces the test to use `refute_match`
835
+ instead of using `refute(matcher.match(string))`.
836
+
837
+ === Examples
838
+
839
+ [source,ruby]
840
+ ----
841
+ # bad
842
+ refute(matcher.match(string))
843
+ refute(matcher.match(string), 'message')
844
+
845
+ # good
846
+ refute_match(matcher, string)
847
+ refute_match(matcher, string, 'message')
848
+ ----
849
+
850
+ === References
851
+
852
+ * https://minitest.rubystyle.guide#refute-match
853
+
854
+ == Minitest/RefuteNil
855
+
856
+ |===
857
+ | Enabled by default | Safe | Supports autocorrection | VersionAdded | VersionChanged
858
+
859
+ | Enabled
860
+ | Yes
861
+ | Yes
862
+ | 0.2
863
+ | -
864
+ |===
865
+
866
+ This cop enforces the test to use `refute_nil`
867
+ instead of using `refute_equal(nil, something)`.
868
+
869
+ === Examples
870
+
871
+ [source,ruby]
872
+ ----
873
+ # bad
874
+ refute_equal(nil, actual)
875
+ refute_equal(nil, actual, 'message')
876
+
877
+ # good
878
+ refute_nil(actual)
879
+ refute_nil(actual, 'message')
880
+ ----
881
+
882
+ === References
883
+
884
+ * https://minitest.rubystyle.guide#refute-nil
885
+
886
+ == Minitest/RefutePathExists
887
+
888
+ |===
889
+ | Enabled by default | Safe | Supports autocorrection | VersionAdded | VersionChanged
890
+
891
+ | Pending
892
+ | Yes
893
+ | Yes
894
+ | 0.10
895
+ | -
896
+ |===
897
+
898
+ This cop enforces the test to use `refute_path_exists`
899
+ instead of using `refute(File.exist?(path))`.
900
+
901
+ === Examples
902
+
903
+ [source,ruby]
904
+ ----
905
+ # bad
906
+ refute(File.exist?(path))
907
+ refute(File.exist?(path), 'message')
908
+
909
+ # good
910
+ refute_path_exists(path)
911
+ refute_path_exists(path, 'message')
912
+ ----
913
+
914
+ === References
915
+
916
+ * https://minitest.rubystyle.guide/#refute-path-exists
917
+
918
+ == Minitest/RefuteRespondTo
919
+
920
+ |===
921
+ | Enabled by default | Safe | Supports autocorrection | VersionAdded | VersionChanged
922
+
923
+ | Enabled
924
+ | Yes
925
+ | Yes
926
+ | 0.4
927
+ | -
928
+ |===
929
+
930
+ This cop enforces the test to use `refute_respond_to(object, :do_something)`
931
+ over `refute(object.respond_to?(:do_something))`.
932
+
933
+ === Examples
934
+
935
+ [source,ruby]
936
+ ----
937
+ # bad
938
+ refute(object.respond_to?(:do_something))
939
+ refute(object.respond_to?(:do_something), 'message')
940
+ refute(respond_to?(:do_something))
941
+
942
+ # good
943
+ refute_respond_to(object, :do_something)
944
+ refute_respond_to(object, :do_something, 'message')
945
+ refute_respond_to(self, :do_something)
946
+ ----
947
+
948
+ === References
949
+
950
+ * https://minitest.rubystyle.guide#refute-respond-to
951
+
952
+ == Minitest/TestMethodName
953
+
954
+ |===
955
+ | Enabled by default | Safe | Supports autocorrection | VersionAdded | VersionChanged
956
+
957
+ | Pending
958
+ | Yes
959
+ | Yes
960
+ | 0.10
961
+ | -
962
+ |===
963
+
964
+ This cop enforces that test method names start with `test_` prefix.
965
+
966
+ === Examples
967
+
968
+ [source,ruby]
969
+ ----
970
+ # bad
971
+ class FooTest < Minitest::Test
972
+ def does_something
973
+ assert_equal 42, do_something
974
+ end
975
+ end
976
+
977
+ # good
978
+ class FooTest < Minitest::Test
979
+ def test_does_something
980
+ assert_equal 42, do_something
981
+ end
982
+ end
983
+ ----
984
+
985
+ == Minitest/UnspecifiedException
986
+
987
+ |===
988
+ | Enabled by default | Safe | Supports autocorrection | VersionAdded | VersionChanged
989
+
990
+ | Pending
991
+ | Yes
992
+ | No
993
+ | 0.10
994
+ | -
995
+ |===
996
+
997
+ This cop checks for a specified error in `assert_raises`.
998
+
999
+ === Examples
1000
+
1001
+ [source,ruby]
1002
+ ----
1003
+ # bad
1004
+ assert_raises { raise FooException }
1005
+ assert_raises('This should have raised') { raise FooException }
1006
+
1007
+ # good
1008
+ assert_raises(FooException) { raise FooException }
1009
+ assert_raises(FooException, 'This should have raised') { raise FooException }
1010
+ ----
1011
+
1012
+ === References
1013
+
1014
+ * https://minitest.rubystyle.guide#unspecified-exception