rubocop-minitest 0.9.0 → 0.10.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.
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