rubocop-minitest 0.21.1 → 0.22.1

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 (91) hide show
  1. checksums.yaml +4 -4
  2. data/config/default.yml +5 -0
  3. data/lib/rubocop/cop/minitest/assert_match.rb +1 -1
  4. data/lib/rubocop/cop/minitest/assert_raises_with_regexp_argument.rb +36 -0
  5. data/lib/rubocop/cop/minitest_cops.rb +1 -0
  6. data/lib/rubocop/cop/mixin/argument_range_helper.rb +1 -0
  7. data/lib/rubocop/cop/mixin/in_delta_mixin.rb +1 -0
  8. data/lib/rubocop/cop/mixin/minitest_cop_rule.rb +13 -5
  9. data/lib/rubocop/cop/mixin/minitest_exploration_helpers.rb +1 -0
  10. data/lib/rubocop/cop/mixin/nil_assertion_handleable.rb +1 -0
  11. data/lib/rubocop/cop/mixin/predicate_assertion_handleable.rb +1 -0
  12. data/lib/rubocop/minitest/version.rb +1 -1
  13. metadata +4 -81
  14. data/.circleci/config.yml +0 -55
  15. data/.gitattributes +0 -1
  16. data/.github/FUNDING.yml +0 -7
  17. data/.github/ISSUE_TEMPLATE/bug_report.md +0 -43
  18. data/.github/ISSUE_TEMPLATE/feature_request.md +0 -20
  19. data/.github/PULL_REQUEST_TEMPLATE.md +0 -17
  20. data/.github/workflows/linting.yml +0 -15
  21. data/.github/workflows/spell_checking.yml +0 -33
  22. data/.gitignore +0 -61
  23. data/.rubocop.yml +0 -110
  24. data/.rubocop_todo.yml +0 -19
  25. data/.yamllint.yml +0 -9
  26. data/.yardopts +0 -3
  27. data/CHANGELOG.md +0 -336
  28. data/CONTRIBUTING.md +0 -69
  29. data/Gemfile +0 -16
  30. data/Rakefile +0 -56
  31. data/bin/console +0 -11
  32. data/bin/setup +0 -8
  33. data/codespell.txt +0 -0
  34. data/docs/antora.yml +0 -7
  35. data/docs/modules/ROOT/nav.adoc +0 -6
  36. data/docs/modules/ROOT/pages/cops.adoc +0 -56
  37. data/docs/modules/ROOT/pages/cops_minitest.adoc +0 -1450
  38. data/docs/modules/ROOT/pages/index.adoc +0 -5
  39. data/docs/modules/ROOT/pages/installation.adoc +0 -15
  40. data/docs/modules/ROOT/pages/usage.adoc +0 -32
  41. data/legacy-docs/cops.md +0 -23
  42. data/legacy-docs/cops_minitest.md +0 -448
  43. data/legacy-docs/index.md +0 -1
  44. data/legacy-docs/installation.md +0 -11
  45. data/legacy-docs/usage.md +0 -27
  46. data/mkdocs.yml +0 -13
  47. data/readthedocs.yml +0 -5
  48. data/relnotes/v0.1.0.md +0 -7
  49. data/relnotes/v0.10.0.md +0 -21
  50. data/relnotes/v0.10.1.md +0 -5
  51. data/relnotes/v0.10.2.md +0 -5
  52. data/relnotes/v0.10.3.md +0 -5
  53. data/relnotes/v0.11.0.md +0 -16
  54. data/relnotes/v0.11.1.md +0 -5
  55. data/relnotes/v0.12.0.md +0 -10
  56. data/relnotes/v0.12.1.md +0 -5
  57. data/relnotes/v0.13.0.md +0 -5
  58. data/relnotes/v0.14.0.md +0 -5
  59. data/relnotes/v0.15.0.md +0 -5
  60. data/relnotes/v0.15.1.md +0 -5
  61. data/relnotes/v0.15.2.md +0 -5
  62. data/relnotes/v0.16.0.md +0 -11
  63. data/relnotes/v0.17.0.md +0 -5
  64. data/relnotes/v0.17.1.md +0 -5
  65. data/relnotes/v0.17.2.md +0 -5
  66. data/relnotes/v0.18.0.md +0 -9
  67. data/relnotes/v0.19.0.md +0 -5
  68. data/relnotes/v0.19.1.md +0 -5
  69. data/relnotes/v0.2.0.md +0 -9
  70. data/relnotes/v0.2.1.md +0 -5
  71. data/relnotes/v0.20.0.md +0 -13
  72. data/relnotes/v0.20.1.md +0 -5
  73. data/relnotes/v0.21.0.md +0 -5
  74. data/relnotes/v0.21.1.md +0 -5
  75. data/relnotes/v0.3.0.md +0 -16
  76. data/relnotes/v0.4.0.md +0 -14
  77. data/relnotes/v0.4.1.md +0 -5
  78. data/relnotes/v0.5.0.md +0 -5
  79. data/relnotes/v0.5.1.md +0 -5
  80. data/relnotes/v0.6.0.md +0 -5
  81. data/relnotes/v0.6.1.md +0 -6
  82. data/relnotes/v0.6.2.md +0 -5
  83. data/relnotes/v0.7.0.md +0 -13
  84. data/relnotes/v0.8.0.md +0 -12
  85. data/relnotes/v0.8.1.md +0 -5
  86. data/relnotes/v0.9.0.md +0 -10
  87. data/rubocop-minitest.gemspec +0 -40
  88. data/tasks/changelog.rake +0 -34
  89. data/tasks/changelog.rb +0 -166
  90. data/tasks/cops_documentation.rake +0 -50
  91. data/tasks/cut_release.rake +0 -86
@@ -1,1450 +0,0 @@
1
- = Minitest
2
-
3
- == Minitest/AssertEmpty
4
-
5
- |===
6
- | Enabled by default | Safe | Supports autocorrection | Version Added | Version Changed
7
-
8
- | Enabled
9
- | Yes
10
- | Yes
11
- | 0.2
12
- | -
13
- |===
14
-
15
- Enforces the test to use `assert_empty` instead of using `assert(object.empty?)`.
16
-
17
- === Examples
18
-
19
- [source,ruby]
20
- ----
21
- # bad
22
- assert(object.empty?)
23
- assert(object.empty?, 'message')
24
-
25
- # good
26
- assert_empty(object)
27
- assert_empty(object, 'message')
28
- ----
29
-
30
- === References
31
-
32
- * https://minitest.rubystyle.guide#assert-empty
33
-
34
- == Minitest/AssertEmptyLiteral
35
-
36
- |===
37
- | Enabled by default | Safe | Supports autocorrection | Version Added | Version Changed
38
-
39
- | Enabled
40
- | Yes
41
- | Yes
42
- | 0.5
43
- | 0.11
44
- |===
45
-
46
- Enforces the test to use `assert_empty`
47
- instead of using `assert_equal([], object)` or `assert_equal({}, object)`.
48
-
49
- === Examples
50
-
51
- [source,ruby]
52
- ----
53
- # bad
54
- assert_equal([], object)
55
- assert_equal({}, object)
56
-
57
- # good
58
- assert_empty(object)
59
- ----
60
-
61
- == Minitest/AssertEqual
62
-
63
- |===
64
- | Enabled by default | Safe | Supports autocorrection | Version Added | Version Changed
65
-
66
- | Enabled
67
- | Yes
68
- | Yes
69
- | 0.4
70
- | -
71
- |===
72
-
73
- Enforces the use of `assert_equal(expected, actual)`
74
- over `assert(expected == actual)`.
75
-
76
- === Examples
77
-
78
- [source,ruby]
79
- ----
80
- # bad
81
- assert("rubocop-minitest" == actual)
82
-
83
- # good
84
- assert_equal("rubocop-minitest", actual)
85
- ----
86
-
87
- === References
88
-
89
- * https://minitest.rubystyle.guide#assert-equal-arguments-order
90
-
91
- == Minitest/AssertInDelta
92
-
93
- |===
94
- | Enabled by default | Safe | Supports autocorrection | Version Added | Version Changed
95
-
96
- | Pending
97
- | Yes
98
- | Yes
99
- | 0.10
100
- | -
101
- |===
102
-
103
- Enforces the test to use `assert_in_delta`
104
- instead of using `assert_equal` to compare floats.
105
-
106
- === Examples
107
-
108
- [source,ruby]
109
- ----
110
- # bad
111
- assert_equal(0.2, actual)
112
- assert_equal(0.2, actual, 'message')
113
-
114
- # good
115
- assert_in_delta(0.2, actual)
116
- assert_in_delta(0.2, actual, 0.001, 'message')
117
- ----
118
-
119
- === References
120
-
121
- * https://minitest.rubystyle.guide/#assert-in-delta
122
-
123
- == Minitest/AssertIncludes
124
-
125
- |===
126
- | Enabled by default | Safe | Supports autocorrection | Version Added | Version Changed
127
-
128
- | Enabled
129
- | Yes
130
- | Yes
131
- | 0.2
132
- | -
133
- |===
134
-
135
- Enforces the test to use `assert_includes`
136
- instead of using `assert(collection.include?(object))`.
137
-
138
- === Examples
139
-
140
- [source,ruby]
141
- ----
142
- # bad
143
- assert(collection.include?(object))
144
- assert(collection.include?(object), 'message')
145
-
146
- # good
147
- assert_includes(collection, object)
148
- assert_includes(collection, object, 'message')
149
- ----
150
-
151
- === References
152
-
153
- * https://minitest.rubystyle.guide#assert-includes
154
-
155
- == Minitest/AssertInstanceOf
156
-
157
- |===
158
- | Enabled by default | Safe | Supports autocorrection | Version Added | Version Changed
159
-
160
- | Enabled
161
- | Yes
162
- | Yes
163
- | 0.4
164
- | -
165
- |===
166
-
167
- Enforces the test to use `assert_instance_of(Class, object)`
168
- over `assert(object.instance_of?(Class))`.
169
-
170
- === Examples
171
-
172
- [source,ruby]
173
- ----
174
- # bad
175
- assert(object.instance_of?(Class))
176
- assert(object.instance_of?(Class), 'message')
177
-
178
- # good
179
- assert_instance_of(Class, object)
180
- assert_instance_of(Class, object, 'message')
181
- ----
182
-
183
- === References
184
-
185
- * https://minitest.rubystyle.guide#assert-instance-of
186
-
187
- == Minitest/AssertKindOf
188
-
189
- |===
190
- | Enabled by default | Safe | Supports autocorrection | Version Added | Version Changed
191
-
192
- | Pending
193
- | Yes
194
- | Yes
195
- | 0.10
196
- | -
197
- |===
198
-
199
- Enforces the test to use `assert_kind_of(Class, object)`
200
- over `assert(object.kind_of?(Class))`.
201
-
202
- === Examples
203
-
204
- [source,ruby]
205
- ----
206
- # bad
207
- assert(object.kind_of?(Class))
208
- assert(object.kind_of?(Class), 'message')
209
-
210
- # good
211
- assert_kind_of(Class, object)
212
- assert_kind_of(Class, object, 'message')
213
- ----
214
-
215
- === References
216
-
217
- * https://github.com/rubocop/minitest-style-guide#assert-kind-of
218
-
219
- == Minitest/AssertMatch
220
-
221
- |===
222
- | Enabled by default | Safe | Supports autocorrection | Version Added | Version Changed
223
-
224
- | Enabled
225
- | Yes
226
- | Yes
227
- | 0.6
228
- | -
229
- |===
230
-
231
- Enforces the test to use `assert_match`
232
- instead of using `assert(matcher.match(string))`.
233
-
234
- === Examples
235
-
236
- [source,ruby]
237
- ----
238
- # bad
239
- assert(matcher.match(string))
240
- assert(matcher.match(string), 'message')
241
-
242
- # good
243
- assert_match(regex, string)
244
- assert_match(matcher, string, 'message')
245
- ----
246
-
247
- === References
248
-
249
- * https://minitest.rubystyle.guide#assert-match
250
-
251
- == Minitest/AssertNil
252
-
253
- |===
254
- | Enabled by default | Safe | Supports autocorrection | Version Added | Version Changed
255
-
256
- | Enabled
257
- | Yes
258
- | Yes
259
- | 0.1
260
- | -
261
- |===
262
-
263
- Enforces the test to use `assert_nil` instead of using
264
- `assert_equal(nil, something)`, `assert(something.nil?)`, or `assert_predicate(something, :nil?)`.
265
-
266
- === Examples
267
-
268
- [source,ruby]
269
- ----
270
- # bad
271
- assert_equal(nil, actual)
272
- assert_equal(nil, actual, 'message')
273
- assert(object.nil?)
274
- assert(object.nil?, 'message')
275
- assert_predicate(object, :nil?)
276
- assert_predicate(object, :nil?, 'message')
277
-
278
- # good
279
- assert_nil(actual)
280
- assert_nil(actual, 'message')
281
- ----
282
-
283
- === References
284
-
285
- * https://minitest.rubystyle.guide#assert-nil
286
-
287
- == Minitest/AssertOutput
288
-
289
- |===
290
- | Enabled by default | Safe | Supports autocorrection | Version Added | Version Changed
291
-
292
- | Pending
293
- | Yes
294
- | No
295
- | 0.10
296
- | -
297
- |===
298
-
299
- Checks for opportunities to use `assert_output`.
300
-
301
- === Examples
302
-
303
- [source,ruby]
304
- ----
305
- # bad
306
- $stdout = StringIO.new
307
- puts object.method
308
- $stdout.rewind
309
- assert_match expected, $stdout.read
310
-
311
- # good
312
- assert_output(expected) { puts object.method }
313
- ----
314
-
315
- === References
316
-
317
- * https://minitest.rubystyle.guide/#assert-output
318
-
319
- == Minitest/AssertPathExists
320
-
321
- |===
322
- | Enabled by default | Safe | Supports autocorrection | Version Added | Version Changed
323
-
324
- | Pending
325
- | Yes
326
- | Yes
327
- | 0.10
328
- | -
329
- |===
330
-
331
- Enforces the test to use `assert_path_exists` instead of using `assert(File.exist?(path))`.
332
-
333
- === Examples
334
-
335
- [source,ruby]
336
- ----
337
- # bad
338
- assert(File.exist?(path))
339
- assert(File.exist?(path), 'message')
340
-
341
- # good
342
- assert_path_exists(path)
343
- assert_path_exists(path, 'message')
344
- ----
345
-
346
- === References
347
-
348
- * https://minitest.rubystyle.guide/#assert-path-exists
349
-
350
- == Minitest/AssertPredicate
351
-
352
- |===
353
- | Enabled by default | Safe | Supports autocorrection | Version Added | Version Changed
354
-
355
- | Pending
356
- | Yes
357
- | Yes
358
- | 0.18
359
- | -
360
- |===
361
-
362
- Enforces the test to use `assert_predicate`
363
- instead of using `assert(obj.a_predicate_method?)`.
364
-
365
- === Examples
366
-
367
- [source,ruby]
368
- ----
369
- # bad
370
- assert(obj.one?)
371
- assert(obj.one?, 'message')
372
-
373
- # good
374
- assert_predicate(obj, :one?)
375
- assert_predicate(obj, :one?, 'message')
376
- ----
377
-
378
- === References
379
-
380
- * https://minitest.rubystyle.guide/#assert-predicate
381
-
382
- == Minitest/AssertRaisesCompoundBody
383
-
384
- |===
385
- | Enabled by default | Safe | Supports autocorrection | Version Added | Version Changed
386
-
387
- | Pending
388
- | Yes
389
- | No
390
- | 0.21
391
- | -
392
- |===
393
-
394
- Enforces the block body of `assert_raises { ... }` to be reduced to only the raising code.
395
-
396
- === Examples
397
-
398
- [source,ruby]
399
- ----
400
- # bad
401
- assert_raises(MyError) do
402
- foo
403
- bar
404
- end
405
-
406
- # good
407
- assert_raises(MyError) do
408
- foo
409
- end
410
-
411
- # good
412
- assert_raises(MyError) do
413
- foo do
414
- bar
415
- baz
416
- end
417
- end
418
- ----
419
-
420
- == Minitest/AssertRespondTo
421
-
422
- |===
423
- | Enabled by default | Safe | Supports autocorrection | Version Added | Version Changed
424
-
425
- | Enabled
426
- | Yes
427
- | Yes
428
- | 0.3
429
- | -
430
- |===
431
-
432
- Enforces the use of `assert_respond_to(object, :do_something)`
433
- over `assert(object.respond_to?(:do_something))`.
434
-
435
- === Examples
436
-
437
- [source,ruby]
438
- ----
439
- # bad
440
- assert(object.respond_to?(:do_something))
441
- assert(object.respond_to?(:do_something), 'message')
442
- assert(respond_to?(:do_something))
443
-
444
- # good
445
- assert_respond_to(object, :do_something)
446
- assert_respond_to(object, :do_something, 'message')
447
- assert_respond_to(self, :do_something)
448
- ----
449
-
450
- === References
451
-
452
- * https://minitest.rubystyle.guide#assert-responds-to-method
453
-
454
- == Minitest/AssertSilent
455
-
456
- |===
457
- | Enabled by default | Safe | Supports autocorrection | Version Added | Version Changed
458
-
459
- | Pending
460
- | Yes
461
- | Yes
462
- | 0.10
463
- | -
464
- |===
465
-
466
- Enforces the test to use `assert_silent { ... }`
467
- instead of using `assert_output('', '') { ... }`.
468
-
469
- === Examples
470
-
471
- [source,ruby]
472
- ----
473
- # bad
474
- assert_output('', '') { puts object.do_something }
475
-
476
- # good
477
- assert_silent { puts object.do_something }
478
- ----
479
-
480
- === References
481
-
482
- * https://github.com/rubocop/minitest-style-guide#assert-silent
483
-
484
- == Minitest/AssertTruthy
485
-
486
- |===
487
- | Enabled by default | Safe | Supports autocorrection | Version Added | Version Changed
488
-
489
- | Enabled
490
- | Yes
491
- | Yes
492
- | 0.2
493
- | -
494
- |===
495
-
496
- Enforces the test to use `assert(actual)` instead of using `assert_equal(true, actual)`.
497
-
498
- === Examples
499
-
500
- [source,ruby]
501
- ----
502
- # bad
503
- assert_equal(true, actual)
504
- assert_equal(true, actual, 'message')
505
-
506
- # good
507
- assert(actual)
508
- assert(actual, 'message')
509
- ----
510
-
511
- === References
512
-
513
- * https://minitest.rubystyle.guide#assert-truthy
514
-
515
- == Minitest/AssertWithExpectedArgument
516
-
517
- |===
518
- | Enabled by default | Safe | Supports autocorrection | Version Added | Version Changed
519
-
520
- | Pending
521
- | No
522
- | No
523
- | 0.11
524
- | -
525
- |===
526
-
527
- Tries to detect when a user accidentally used
528
- `assert` when they meant to use `assert_equal`.
529
-
530
- === Safety
531
-
532
- This cop is unsafe because it is not possible to determine
533
- whether the second argument of `assert` is a message or not.
534
-
535
- === Examples
536
-
537
- [source,ruby]
538
- ----
539
- # bad
540
- assert(3, my_list.length)
541
- assert(expected, actual)
542
-
543
- # good
544
- assert_equal(3, my_list.length)
545
- assert_equal(expected, actual)
546
- assert(foo, 'message')
547
- ----
548
-
549
- == Minitest/AssertionInLifecycleHook
550
-
551
- |===
552
- | Enabled by default | Safe | Supports autocorrection | Version Added | Version Changed
553
-
554
- | Pending
555
- | Yes
556
- | No
557
- | 0.10
558
- | -
559
- |===
560
-
561
- Checks for usage of assertions in lifecycle hooks.
562
-
563
- === Examples
564
-
565
- [source,ruby]
566
- ----
567
- # bad
568
- class FooTest < Minitest::Test
569
- def setup
570
- assert_equal(foo, bar)
571
- end
572
- end
573
-
574
- # good
575
- class FooTest < Minitest::Test
576
- def test_something
577
- assert_equal(foo, bar)
578
- end
579
- end
580
- ----
581
-
582
- == Minitest/DuplicateTestRun
583
-
584
- |===
585
- | Enabled by default | Safe | Supports autocorrection | Version Added | Version Changed
586
-
587
- | Pending
588
- | Yes
589
- | No
590
- | 0.19
591
- | -
592
- |===
593
-
594
- If a Minitest class inherits from another class,
595
- it will also inherit its methods causing Minitest to run the parent's tests methods twice.
596
-
597
- This cop detects when there are two tests classes, one inherits from the other, and both have tests methods.
598
- This cop will add an offense to the Child class in such a case.
599
-
600
- === Examples
601
-
602
- [source,ruby]
603
- ----
604
- # bad
605
- class ParentTest < Minitest::Test
606
- def test_parent # it will run this test twice.
607
- end
608
- end
609
-
610
- class ChildTest < ParentTest
611
- def test_child
612
- end
613
- end
614
-
615
- # good
616
- class ParentTest < Minitest::Test
617
- def test_parent
618
- end
619
- end
620
-
621
- class ChildTest < Minitest::Test
622
- def test_child
623
- end
624
- end
625
-
626
- # good
627
- class ParentTest < Minitest::Test
628
- end
629
-
630
- class ChildTest
631
- def test_child
632
- end
633
-
634
- def test_parent
635
- end
636
- end
637
- ----
638
-
639
- === References
640
-
641
- * https://minitest.rubystyle.guide/#subclassing-test-cases
642
-
643
- == Minitest/GlobalExpectations
644
-
645
- |===
646
- | Enabled by default | Safe | Supports autocorrection | Version Added | Version Changed
647
-
648
- | Enabled
649
- | Yes
650
- | Yes
651
- | 0.7
652
- | 0.16
653
- |===
654
-
655
- Checks for deprecated global expectations
656
- and autocorrects them to use expect format.
657
-
658
- === Examples
659
-
660
- ==== EnforcedStyle: any (default)
661
-
662
- [source,ruby]
663
- ----
664
- # bad
665
- musts.must_equal expected_musts
666
- wonts.wont_match expected_wonts
667
- musts.must_raise TypeError
668
-
669
- # good
670
- _(musts).must_equal expected_musts
671
- _(wonts).wont_match expected_wonts
672
- _ { musts }.must_raise TypeError
673
-
674
- expect(musts).must_equal expected_musts
675
- expect(wonts).wont_match expected_wonts
676
- expect { musts }.must_raise TypeError
677
-
678
- value(musts).must_equal expected_musts
679
- value(wonts).wont_match expected_wonts
680
- value { musts }.must_raise TypeError
681
- ----
682
-
683
- ==== EnforcedStyle: _
684
-
685
- [source,ruby]
686
- ----
687
- # bad
688
- musts.must_equal expected_musts
689
- wonts.wont_match expected_wonts
690
- musts.must_raise TypeError
691
-
692
- expect(musts).must_equal expected_musts
693
- expect(wonts).wont_match expected_wonts
694
- expect { musts }.must_raise TypeError
695
-
696
- value(musts).must_equal expected_musts
697
- value(wonts).wont_match expected_wonts
698
- value { musts }.must_raise TypeError
699
-
700
- # good
701
- _(musts).must_equal expected_musts
702
- _(wonts).wont_match expected_wonts
703
- _ { musts }.must_raise TypeError
704
- ----
705
-
706
- ==== EnforcedStyle: expect
707
-
708
- [source,ruby]
709
- ----
710
- # bad
711
- musts.must_equal expected_musts
712
- wonts.wont_match expected_wonts
713
- musts.must_raise TypeError
714
-
715
- _(musts).must_equal expected_musts
716
- _(wonts).wont_match expected_wonts
717
- _ { musts }.must_raise TypeError
718
-
719
- value(musts).must_equal expected_musts
720
- value(wonts).wont_match expected_wonts
721
- value { musts }.must_raise TypeError
722
-
723
- # good
724
- expect(musts).must_equal expected_musts
725
- expect(wonts).wont_match expected_wonts
726
- expect { musts }.must_raise TypeError
727
- ----
728
-
729
- ==== EnforcedStyle: value
730
-
731
- [source,ruby]
732
- ----
733
- # bad
734
- musts.must_equal expected_musts
735
- wonts.wont_match expected_wonts
736
- musts.must_raise TypeError
737
-
738
- _(musts).must_equal expected_musts
739
- _(wonts).wont_match expected_wonts
740
- _ { musts }.must_raise TypeError
741
-
742
- expect(musts).must_equal expected_musts
743
- expect(wonts).wont_match expected_wonts
744
- expect { musts }.must_raise TypeError
745
-
746
- # good
747
- value(musts).must_equal expected_musts
748
- value(wonts).wont_match expected_wonts
749
- value { musts }.must_raise TypeError
750
- ----
751
-
752
- === Configurable attributes
753
-
754
- |===
755
- | Name | Default value | Configurable values
756
-
757
- | EnforcedStyle
758
- | `any`
759
- | `_`, `any`, `expect`, `value`
760
-
761
- | Include
762
- | `+**/test/**/*+`, `+**/*_test.rb+`, `+**/spec/**/*+`, `+**/*_spec.rb+`
763
- | Array
764
- |===
765
-
766
- === References
767
-
768
- * https://minitest.rubystyle.guide#global-expectations
769
-
770
- == Minitest/LiteralAsActualArgument
771
-
772
- |===
773
- | Enabled by default | Safe | Supports autocorrection | Version Added | Version Changed
774
-
775
- | Pending
776
- | Yes
777
- | Yes
778
- | 0.10
779
- | -
780
- |===
781
-
782
- Enforces correct order of expected and
783
- actual arguments for `assert_equal`.
784
-
785
- === Examples
786
-
787
- [source,ruby]
788
- ----
789
- # bad
790
- assert_equal foo, 2
791
- assert_equal foo, [1, 2]
792
- assert_equal foo, [1, 2], 'message'
793
-
794
- # good
795
- assert_equal 2, foo
796
- assert_equal [1, 2], foo
797
- assert_equal [1, 2], foo, 'message'
798
- ----
799
-
800
- === References
801
-
802
- * https://minitest.rubystyle.guide/#assert-equal-arguments-order
803
-
804
- == Minitest/MultipleAssertions
805
-
806
- |===
807
- | Enabled by default | Safe | Supports autocorrection | Version Added | Version Changed
808
-
809
- | Pending
810
- | Yes
811
- | No
812
- | 0.10
813
- | -
814
- |===
815
-
816
- Checks if test cases contain too many assertion calls.
817
- The maximum allowed assertion calls is configurable.
818
-
819
- === Examples
820
-
821
- ==== Max: 1
822
-
823
- [source,ruby]
824
- ----
825
- # bad
826
- class FooTest < Minitest::Test
827
- def test_asserts_twice
828
- assert_equal(42, do_something)
829
- assert_empty(array)
830
- end
831
- end
832
-
833
- # good
834
- class FooTest < Minitest::Test
835
- def test_asserts_once
836
- assert_equal(42, do_something)
837
- end
838
-
839
- def test_another_asserts_once
840
- assert_empty(array)
841
- end
842
- end
843
- ----
844
-
845
- === Configurable attributes
846
-
847
- |===
848
- | Name | Default value | Configurable values
849
-
850
- | Max
851
- | `3`
852
- | Integer
853
- |===
854
-
855
- == Minitest/NoAssertions
856
-
857
- |===
858
- | Enabled by default | Safe | Supports autocorrection | Version Added | Version Changed
859
-
860
- | Disabled
861
- | Yes
862
- | No
863
- | 0.12
864
- | -
865
- |===
866
-
867
- Checks if test cases contain any assertion calls.
868
-
869
- === Examples
870
-
871
- [source,ruby]
872
- ----
873
- # bad
874
- class FooTest < Minitest::Test
875
- def test_the_truth
876
- end
877
- end
878
-
879
- # good
880
- class FooTest < Minitest::Test
881
- def test_the_truth
882
- assert true
883
- end
884
- end
885
- ----
886
-
887
- == Minitest/RefuteEmpty
888
-
889
- |===
890
- | Enabled by default | Safe | Supports autocorrection | Version Added | Version Changed
891
-
892
- | Enabled
893
- | Yes
894
- | Yes
895
- | 0.3
896
- | -
897
- |===
898
-
899
- Enforces to use `refute_empty` instead of using `refute(object.empty?)`.
900
-
901
- === Examples
902
-
903
- [source,ruby]
904
- ----
905
- # bad
906
- refute(object.empty?)
907
- refute(object.empty?, 'message')
908
-
909
- # good
910
- refute_empty(object)
911
- refute_empty(object, 'message')
912
- ----
913
-
914
- === References
915
-
916
- * https://minitest.rubystyle.guide#refute-empty
917
-
918
- == Minitest/RefuteEqual
919
-
920
- |===
921
- | Enabled by default | Safe | Supports autocorrection | Version Added | Version Changed
922
-
923
- | Enabled
924
- | Yes
925
- | Yes
926
- | 0.3
927
- | -
928
- |===
929
-
930
- Enforces the use of `refute_equal(expected, object)`
931
- over `assert(expected != actual)` or `assert(! expected == actual)`.
932
-
933
- === Examples
934
-
935
- [source,ruby]
936
- ----
937
- # bad
938
- assert("rubocop-minitest" != actual)
939
- assert(! "rubocop-minitest" == actual)
940
-
941
- # good
942
- refute_equal("rubocop-minitest", actual)
943
- ----
944
-
945
- === References
946
-
947
- * https://minitest.rubystyle.guide#refute-equal
948
-
949
- == Minitest/RefuteFalse
950
-
951
- |===
952
- | Enabled by default | Safe | Supports autocorrection | Version Added | Version Changed
953
-
954
- | Enabled
955
- | Yes
956
- | Yes
957
- | 0.3
958
- | -
959
- |===
960
-
961
- Enforces the use of `refute(object)` over `assert_equal(false, object)`.
962
-
963
- === Examples
964
-
965
- [source,ruby]
966
- ----
967
- # bad
968
- assert_equal(false, actual)
969
- assert_equal(false, actual, 'message')
970
-
971
- assert(!test)
972
- assert(!test, 'message')
973
-
974
- # good
975
- refute(actual)
976
- refute(actual, 'message')
977
- ----
978
-
979
- === References
980
-
981
- * https://minitest.rubystyle.guide#refute-false
982
-
983
- == Minitest/RefuteInDelta
984
-
985
- |===
986
- | Enabled by default | Safe | Supports autocorrection | Version Added | Version Changed
987
-
988
- | Pending
989
- | Yes
990
- | Yes
991
- | 0.10
992
- | -
993
- |===
994
-
995
- Enforces the test to use `refute_in_delta`
996
- instead of using `refute_equal` to compare floats.
997
-
998
- === Examples
999
-
1000
- [source,ruby]
1001
- ----
1002
- # bad
1003
- refute_equal(0.2, actual)
1004
- refute_equal(0.2, actual, 'message')
1005
-
1006
- # good
1007
- refute_in_delta(0.2, actual)
1008
- refute_in_delta(0.2, actual, 0.001, 'message')
1009
- ----
1010
-
1011
- === References
1012
-
1013
- * https://minitest.rubystyle.guide/#refute-in-delta
1014
-
1015
- == Minitest/RefuteIncludes
1016
-
1017
- |===
1018
- | Enabled by default | Safe | Supports autocorrection | Version Added | Version Changed
1019
-
1020
- | Enabled
1021
- | Yes
1022
- | Yes
1023
- | 0.3
1024
- | -
1025
- |===
1026
-
1027
- Enforces the test to use `refute_includes`
1028
- instead of using `refute(collection.include?(object))`.
1029
-
1030
- === Examples
1031
-
1032
- [source,ruby]
1033
- ----
1034
- # bad
1035
- refute(collection.include?(object))
1036
- refute(collection.include?(object), 'message')
1037
-
1038
- # good
1039
- refute_includes(collection, object)
1040
- refute_includes(collection, object, 'message')
1041
- ----
1042
-
1043
- === References
1044
-
1045
- * https://minitest.rubystyle.guide#refute-includes
1046
-
1047
- == Minitest/RefuteInstanceOf
1048
-
1049
- |===
1050
- | Enabled by default | Safe | Supports autocorrection | Version Added | Version Changed
1051
-
1052
- | Enabled
1053
- | Yes
1054
- | Yes
1055
- | 0.4
1056
- | -
1057
- |===
1058
-
1059
- Enforces the use of `refute_instance_of(Class, object)`
1060
- over `refute(object.instance_of?(Class))`.
1061
-
1062
- === Examples
1063
-
1064
- [source,ruby]
1065
- ----
1066
- # bad
1067
- refute(object.instance_of?(Class))
1068
- refute(object.instance_of?(Class), 'message')
1069
-
1070
- # good
1071
- refute_instance_of(Class, object)
1072
- refute_instance_of(Class, object, 'message')
1073
- ----
1074
-
1075
- === References
1076
-
1077
- * https://minitest.rubystyle.guide#refute-instance-of
1078
-
1079
- == Minitest/RefuteKindOf
1080
-
1081
- |===
1082
- | Enabled by default | Safe | Supports autocorrection | Version Added | Version Changed
1083
-
1084
- | Pending
1085
- | Yes
1086
- | Yes
1087
- | 0.10
1088
- | -
1089
- |===
1090
-
1091
- Enforces the use of `refute_kind_of(Class, object)`
1092
- over `refute(object.kind_of?(Class))`.
1093
-
1094
- === Examples
1095
-
1096
- [source,ruby]
1097
- ----
1098
- # bad
1099
- refute(object.kind_of?(Class))
1100
- refute(object.kind_of?(Class), 'message')
1101
-
1102
- # good
1103
- refute_kind_of(Class, object)
1104
- refute_kind_of(Class, object, 'message')
1105
- ----
1106
-
1107
- === References
1108
-
1109
- * https://github.com/rubocop/minitest-style-guide#refute-kind-of
1110
-
1111
- == Minitest/RefuteMatch
1112
-
1113
- |===
1114
- | Enabled by default | Safe | Supports autocorrection | Version Added | Version Changed
1115
-
1116
- | Enabled
1117
- | Yes
1118
- | Yes
1119
- | 0.6
1120
- | -
1121
- |===
1122
-
1123
- Enforces the test to use `refute_match`
1124
- instead of using `refute(matcher.match(string))`.
1125
-
1126
- === Examples
1127
-
1128
- [source,ruby]
1129
- ----
1130
- # bad
1131
- refute(matcher.match(string))
1132
- refute(matcher.match(string), 'message')
1133
-
1134
- # good
1135
- refute_match(matcher, string)
1136
- refute_match(matcher, string, 'message')
1137
- ----
1138
-
1139
- === References
1140
-
1141
- * https://minitest.rubystyle.guide#refute-match
1142
-
1143
- == Minitest/RefuteNil
1144
-
1145
- |===
1146
- | Enabled by default | Safe | Supports autocorrection | Version Added | Version Changed
1147
-
1148
- | Enabled
1149
- | Yes
1150
- | Yes
1151
- | 0.2
1152
- | -
1153
- |===
1154
-
1155
- Enforces the test to use `refute_nil` instead of using
1156
- `refute_equal(nil, something)`, `refute(something.nil?)`, or `refute_predicate(something, :nil?)`.
1157
-
1158
- === Examples
1159
-
1160
- [source,ruby]
1161
- ----
1162
- # bad
1163
- refute_equal(nil, actual)
1164
- refute_equal(nil, actual, 'message')
1165
- refute(actual.nil?)
1166
- refute(actual.nil?, 'message')
1167
- refute_predicate(object, :nil?)
1168
- refute_predicate(object, :nil?, 'message')
1169
-
1170
- # good
1171
- refute_nil(actual)
1172
- refute_nil(actual, 'message')
1173
- ----
1174
-
1175
- === References
1176
-
1177
- * https://minitest.rubystyle.guide#refute-nil
1178
-
1179
- == Minitest/RefutePathExists
1180
-
1181
- |===
1182
- | Enabled by default | Safe | Supports autocorrection | Version Added | Version Changed
1183
-
1184
- | Pending
1185
- | Yes
1186
- | Yes
1187
- | 0.10
1188
- | -
1189
- |===
1190
-
1191
- Enforces the test to use `refute_path_exists` instead of using `refute(File.exist?(path))`.
1192
-
1193
- === Examples
1194
-
1195
- [source,ruby]
1196
- ----
1197
- # bad
1198
- refute(File.exist?(path))
1199
- refute(File.exist?(path), 'message')
1200
-
1201
- # good
1202
- refute_path_exists(path)
1203
- refute_path_exists(path, 'message')
1204
- ----
1205
-
1206
- === References
1207
-
1208
- * https://minitest.rubystyle.guide/#refute-path-exists
1209
-
1210
- == Minitest/RefutePredicate
1211
-
1212
- |===
1213
- | Enabled by default | Safe | Supports autocorrection | Version Added | Version Changed
1214
-
1215
- | Pending
1216
- | Yes
1217
- | Yes
1218
- | 0.18
1219
- | -
1220
- |===
1221
-
1222
- Enforces the test to use `refute_predicate`
1223
- instead of using `refute(obj.a_predicate_method?)`.
1224
-
1225
- === Examples
1226
-
1227
- [source,ruby]
1228
- ----
1229
- # bad
1230
- refute(obj.one?)
1231
- refute(obj.one?, 'message')
1232
-
1233
- # good
1234
- refute_predicate(obj, :one?)
1235
- refute_predicate(obj, :one?, 'message')
1236
- ----
1237
-
1238
- === References
1239
-
1240
- * https://minitest.rubystyle.guide/#refute-predicate
1241
-
1242
- == Minitest/RefuteRespondTo
1243
-
1244
- |===
1245
- | Enabled by default | Safe | Supports autocorrection | Version Added | Version Changed
1246
-
1247
- | Enabled
1248
- | Yes
1249
- | Yes
1250
- | 0.4
1251
- | -
1252
- |===
1253
-
1254
- Enforces the test to use `refute_respond_to(object, :do_something)`
1255
- over `refute(object.respond_to?(:do_something))`.
1256
-
1257
- === Examples
1258
-
1259
- [source,ruby]
1260
- ----
1261
- # bad
1262
- refute(object.respond_to?(:do_something))
1263
- refute(object.respond_to?(:do_something), 'message')
1264
- refute(respond_to?(:do_something))
1265
-
1266
- # good
1267
- refute_respond_to(object, :do_something)
1268
- refute_respond_to(object, :do_something, 'message')
1269
- refute_respond_to(self, :do_something)
1270
- ----
1271
-
1272
- === References
1273
-
1274
- * https://minitest.rubystyle.guide#refute-respond-to
1275
-
1276
- == Minitest/SkipEnsure
1277
-
1278
- |===
1279
- | Enabled by default | Safe | Supports autocorrection | Version Added | Version Changed
1280
-
1281
- | Pending
1282
- | Yes
1283
- | No
1284
- | 0.20
1285
- | -
1286
- |===
1287
-
1288
- Checks that `ensure` call even if `skip`. It is unexpected that `ensure` will be called when skipping test.
1289
- If conditional `skip` is used, it checks that `ensure` is also called conditionally.
1290
-
1291
- On the other hand, it accepts `skip` used in `rescue` because `ensure` may be teardown process to `begin`
1292
- setup process.
1293
-
1294
- === Examples
1295
-
1296
- [source,ruby]
1297
- ----
1298
- # bad
1299
- def test_skip
1300
- skip 'This test is skipped.'
1301
-
1302
- assert 'foo'.present?
1303
- ensure
1304
- do_something
1305
- end
1306
-
1307
- # bad
1308
- def test_conditional_skip
1309
- skip 'This test is skipped.' if condition
1310
-
1311
- assert do_something
1312
- ensure
1313
- do_teardown
1314
- end
1315
-
1316
- # good
1317
- def test_skip
1318
- skip 'This test is skipped.'
1319
-
1320
- begin
1321
- assert 'foo'.present?
1322
- ensure
1323
- do_something
1324
- end
1325
- end
1326
-
1327
- # good
1328
- def test_conditional_skip
1329
- skip 'This test is skipped.' if condition
1330
-
1331
- assert do_something
1332
- ensure
1333
- if condition
1334
- do_teardown
1335
- end
1336
- end
1337
-
1338
- # good
1339
- def test_skip_is_used_in_rescue
1340
- do_setup
1341
- assert do_something
1342
- rescue
1343
- skip 'This test is skipped.'
1344
- ensure
1345
- do_teardown
1346
- end
1347
- ----
1348
-
1349
- == Minitest/TestMethodName
1350
-
1351
- |===
1352
- | Enabled by default | Safe | Supports autocorrection | Version Added | Version Changed
1353
-
1354
- | Pending
1355
- | Yes
1356
- | Yes
1357
- | 0.10
1358
- | -
1359
- |===
1360
-
1361
- Enforces that test method names start with `test_` prefix.
1362
- It aims to prevent tests that aren't executed by forgetting to start test method name with `test_`.
1363
-
1364
- === Examples
1365
-
1366
- [source,ruby]
1367
- ----
1368
- # bad
1369
- class FooTest < Minitest::Test
1370
- def does_something
1371
- assert_equal 42, do_something
1372
- end
1373
- end
1374
-
1375
- # good
1376
- class FooTest < Minitest::Test
1377
- def test_does_something
1378
- assert_equal 42, do_something
1379
- end
1380
- end
1381
-
1382
- # good
1383
- class FooTest < Minitest::Test
1384
- def helper_method(argument)
1385
- end
1386
- end
1387
- ----
1388
-
1389
- == Minitest/UnreachableAssertion
1390
-
1391
- |===
1392
- | Enabled by default | Safe | Supports autocorrection | Version Added | Version Changed
1393
-
1394
- | Pending
1395
- | Yes
1396
- | No
1397
- | 0.14
1398
- | -
1399
- |===
1400
-
1401
- Checks for `assert_raises` has an assertion method at
1402
- the bottom of block because the assertion will be never reached.
1403
-
1404
- === Examples
1405
-
1406
- [source,ruby]
1407
- ----
1408
- # bad
1409
- assert_raises FooError do
1410
- obj.occur_error
1411
- assert_equal('foo', obj.bar) # Never asserted.
1412
- end
1413
-
1414
- # good
1415
- assert_raises FooError do
1416
- obj.occur_error
1417
- end
1418
- assert_equal('foo', obj.bar)
1419
- ----
1420
-
1421
- == Minitest/UnspecifiedException
1422
-
1423
- |===
1424
- | Enabled by default | Safe | Supports autocorrection | Version Added | Version Changed
1425
-
1426
- | Pending
1427
- | Yes
1428
- | No
1429
- | 0.10
1430
- | -
1431
- |===
1432
-
1433
- Checks for a specified error in `assert_raises`.
1434
-
1435
- === Examples
1436
-
1437
- [source,ruby]
1438
- ----
1439
- # bad
1440
- assert_raises { raise FooException }
1441
- assert_raises('This should have raised') { raise FooException }
1442
-
1443
- # good
1444
- assert_raises(FooException) { raise FooException }
1445
- assert_raises(FooException, 'This should have raised') { raise FooException }
1446
- ----
1447
-
1448
- === References
1449
-
1450
- * https://minitest.rubystyle.guide#unspecified-exception