Minitest
Minitest/AssertEmpty
Enabled by default | Safe | Supports autocorrection | Version Added | Version Changed |
---|---|---|---|---|
Enabled |
Yes |
Yes |
0.2 |
- |
This cop enforces the test to use assert_empty
instead of using assert(object.empty?)
.
Minitest/AssertEmptyLiteral
Enabled by default | Safe | Supports autocorrection | Version Added | Version Changed |
---|---|---|---|---|
Enabled |
Yes |
Yes |
0.5 |
0.11 |
This cop enforces the test to use assert_empty
instead of using assert_equal([], object)
or assert_equal({}, object)
.
Minitest/AssertEqual
Enabled by default | Safe | Supports autocorrection | Version Added | Version Changed |
---|---|---|---|---|
Enabled |
Yes |
Yes |
0.4 |
- |
This cop enforces the use of assert_equal(expected, actual)
over assert(expected == actual)
.
Minitest/AssertInDelta
Enabled by default | Safe | Supports autocorrection | Version Added | Version Changed |
---|---|---|---|---|
Pending |
Yes |
Yes |
0.10 |
- |
This cop enforces the test to use assert_in_delta
instead of using assert_equal
to compare floats.
Minitest/AssertIncludes
Enabled by default | Safe | Supports autocorrection | Version Added | Version Changed |
---|---|---|---|---|
Enabled |
Yes |
Yes |
0.2 |
- |
This cop enforces the test to use assert_includes
instead of using assert(collection.include?(object))
.
Minitest/AssertInstanceOf
Enabled by default | Safe | Supports autocorrection | Version Added | Version Changed |
---|---|---|---|---|
Enabled |
Yes |
Yes |
0.4 |
- |
This cop enforces the test to use assert_instance_of(Class, object)
over assert(object.instance_of?(Class))
.
Minitest/AssertKindOf
Enabled by default | Safe | Supports autocorrection | Version Added | Version Changed |
---|---|---|---|---|
Pending |
Yes |
Yes |
0.10 |
- |
This cop enforces the test to use assert_kind_of(Class, object)
over assert(object.kind_of?(Class))
.
Minitest/AssertMatch
Enabled by default | Safe | Supports autocorrection | Version Added | Version Changed |
---|---|---|---|---|
Enabled |
Yes |
Yes |
0.6 |
- |
This cop enforces the test to use assert_match
instead of using assert(matcher.match(string))
.
Minitest/AssertNil
Enabled by default | Safe | Supports autocorrection | Version Added | Version Changed |
---|---|---|---|---|
Enabled |
Yes |
Yes |
0.1 |
- |
This cop enforces the test to use assert_nil
instead of using
assert_equal(nil, something)
, assert(something.nil?)
, or assert_predicate(something, :nil?)
.
Examples
# bad
assert_equal(nil, actual)
assert_equal(nil, actual, 'message')
assert(object.nil?)
assert(object.nil?, 'message')
assert_predicate(object, :nil?)
assert_predicate(object, :nil?, 'message')
# good
assert_nil(actual)
assert_nil(actual, 'message')
Minitest/AssertOutput
Enabled by default | Safe | Supports autocorrection | Version Added | Version Changed |
---|---|---|---|---|
Pending |
Yes |
No |
0.10 |
- |
This cop checks for opportunities to use assert_output
.
Minitest/AssertPathExists
Enabled by default | Safe | Supports autocorrection | Version Added | Version Changed |
---|---|---|---|---|
Pending |
Yes |
Yes |
0.10 |
- |
This cop enforces the test to use assert_path_exists
instead of using assert(File.exist?(path))
.
Minitest/AssertPredicate
Enabled by default | Safe | Supports autocorrection | Version Added | Version Changed |
---|---|---|---|---|
Pending |
Yes |
Yes |
0.18 |
- |
This cop enforces the test to use assert_predicate
instead of using assert(obj.a_predicate_method?)
.
Minitest/AssertRespondTo
Enabled by default | Safe | Supports autocorrection | Version Added | Version Changed |
---|---|---|---|---|
Enabled |
Yes |
Yes |
0.3 |
- |
This cop enforces the use of assert_respond_to(object, :do_something)
over assert(object.respond_to?(:do_something))
.
Minitest/AssertSilent
Enabled by default | Safe | Supports autocorrection | Version Added | Version Changed |
---|---|---|---|---|
Pending |
Yes |
Yes |
0.10 |
- |
This cop enforces the test to use assert_silent { … }
instead of using assert_output('', '') { … }
.
Minitest/AssertTruthy
Enabled by default | Safe | Supports autocorrection | Version Added | Version Changed |
---|---|---|---|---|
Enabled |
Yes |
Yes |
0.2 |
- |
This cop enforces the test to use assert(actual)
instead of using assert_equal(true, actual)
.
Minitest/AssertWithExpectedArgument
Enabled by default | Safe | Supports autocorrection | Version Added | Version Changed |
---|---|---|---|---|
Pending |
No |
No |
0.11 |
- |
This cop tries to detect when a user accidentally used
assert
when they meant to use assert_equal
.
Minitest/AssertionInLifecycleHook
Enabled by default | Safe | Supports autocorrection | Version Added | Version Changed |
---|---|---|---|---|
Pending |
Yes |
No |
0.10 |
- |
This cop checks for usage of assertions in lifecycle hooks.
Minitest/DuplicateTestRun
Enabled by default | Safe | Supports autocorrection | Version Added | Version Changed |
---|---|---|---|---|
Pending |
Yes |
No |
0.19 |
- |
If a Minitest class inherits from another class, it will also inherit its methods causing Minitest to run the parent’s tests methods twice.
This cop detects when there are two tests classes, one inherits from the other, and both have tests methods. This cop will add an offence to the Child class in such a case.
Examples
# bad
class ParentTest < Minitest::Test
def test_parent # it will run this test twice.
end
end
class ChildTest < ParentTest
def test_child
end
end
# good
class ParentTest < Minitest::Test
def test_parent
end
end
class ChildTest < Minitest::Test
def test_child
end
end
# good
class ParentTest < Minitest::Test
end
class ChildTest
def test_child
end
def test_parent
end
end
Minitest/GlobalExpectations
Enabled by default | Safe | Supports autocorrection | Version Added | Version Changed |
---|---|---|---|---|
Enabled |
Yes |
Yes |
0.7 |
0.16 |
This cop checks for deprecated global expectations and autocorrects them to use expect format.
Examples
EnforcedStyle: _
# bad
musts.must_equal expected_musts
wonts.wont_match expected_wonts
musts.must_raise TypeError
expect(musts).must_equal expected_musts
expect(wonts).wont_match expected_wonts
expect { musts }.must_raise TypeError
value(musts).must_equal expected_musts
value(wonts).wont_match expected_wonts
value { musts }.must_raise TypeError
# good
_(musts).must_equal expected_musts
_(wonts).wont_match expected_wonts
_ { musts }.must_raise TypeError
EnforcedStyle: any (default)
# bad
musts.must_equal expected_musts
wonts.wont_match expected_wonts
musts.must_raise TypeError
# good
_(musts).must_equal expected_musts
_(wonts).wont_match expected_wonts
_ { musts }.must_raise TypeError
expect(musts).must_equal expected_musts
expect(wonts).wont_match expected_wonts
expect { musts }.must_raise TypeError
value(musts).must_equal expected_musts
value(wonts).wont_match expected_wonts
value { musts }.must_raise TypeError
EnforcedStyle: expect
# bad
musts.must_equal expected_musts
wonts.wont_match expected_wonts
musts.must_raise TypeError
_(musts).must_equal expected_musts
_(wonts).wont_match expected_wonts
_ { musts }.must_raise TypeError
value(musts).must_equal expected_musts
value(wonts).wont_match expected_wonts
value { musts }.must_raise TypeError
# good
expect(musts).must_equal expected_musts
expect(wonts).wont_match expected_wonts
expect { musts }.must_raise TypeError
EnforcedStyle: value
# bad
musts.must_equal expected_musts
wonts.wont_match expected_wonts
musts.must_raise TypeError
_(musts).must_equal expected_musts
_(wonts).wont_match expected_wonts
_ { musts }.must_raise TypeError
expect(musts).must_equal expected_musts
expect(wonts).wont_match expected_wonts
expect { musts }.must_raise TypeError
# good
value(musts).must_equal expected_musts
value(wonts).wont_match expected_wonts
value { musts }.must_raise TypeError
Minitest/LiteralAsActualArgument
Enabled by default | Safe | Supports autocorrection | Version Added | Version Changed |
---|---|---|---|---|
Pending |
Yes |
Yes |
0.10 |
- |
This cop enforces correct order of expected and
actual arguments for assert_equal
.
Minitest/MultipleAssertions
Minitest/NoAssertions
Enabled by default | Safe | Supports autocorrection | Version Added | Version Changed |
---|---|---|---|---|
Disabled |
Yes |
No |
0.12 |
- |
This cop checks if test cases contain any assertion calls.
Minitest/RefuteEmpty
Enabled by default | Safe | Supports autocorrection | Version Added | Version Changed |
---|---|---|---|---|
Enabled |
Yes |
Yes |
0.3 |
- |
This cop enforces to use refute_empty
instead of
using refute(object.empty?)
.
Minitest/RefuteEqual
Enabled by default | Safe | Supports autocorrection | Version Added | Version Changed |
---|---|---|---|---|
Enabled |
Yes |
Yes |
0.3 |
- |
This cop enforces the use of refute_equal(expected, object)
over assert(expected != actual)
or assert(! expected == actual)
.
Minitest/RefuteFalse
Enabled by default | Safe | Supports autocorrection | Version Added | Version Changed |
---|---|---|---|---|
Enabled |
Yes |
Yes |
0.3 |
- |
This cop enforces the use of refute(object)
over assert_equal(false, object)
.
Minitest/RefuteInDelta
Enabled by default | Safe | Supports autocorrection | Version Added | Version Changed |
---|---|---|---|---|
Pending |
Yes |
Yes |
0.10 |
- |
This cop enforces the test to use refute_in_delta
instead of using refute_equal
to compare floats.
Minitest/RefuteIncludes
Enabled by default | Safe | Supports autocorrection | Version Added | Version Changed |
---|---|---|---|---|
Enabled |
Yes |
Yes |
0.3 |
- |
This cop enforces the test to use refute_includes
instead of using refute(collection.include?(object))
.
Minitest/RefuteInstanceOf
Enabled by default | Safe | Supports autocorrection | Version Added | Version Changed |
---|---|---|---|---|
Enabled |
Yes |
Yes |
0.4 |
- |
This cop enforces the use of refute_instance_of(Class, object)
over refute(object.instance_of?(Class))
.
Minitest/RefuteKindOf
Enabled by default | Safe | Supports autocorrection | Version Added | Version Changed |
---|---|---|---|---|
Pending |
Yes |
Yes |
0.10 |
- |
This cop enforces the use of refute_kind_of(Class, object)
over refute(object.kind_of?(Class))
.
Minitest/RefuteMatch
Enabled by default | Safe | Supports autocorrection | Version Added | Version Changed |
---|---|---|---|---|
Enabled |
Yes |
Yes |
0.6 |
- |
This cop enforces the test to use refute_match
instead of using refute(matcher.match(string))
.
Minitest/RefuteNil
Enabled by default | Safe | Supports autocorrection | Version Added | Version Changed |
---|---|---|---|---|
Enabled |
Yes |
Yes |
0.2 |
- |
This cop enforces the test to use refute_nil
instead of using
refute_equal(nil, something)
, refute(something.nil?)
, or refute_predicate(something, :nil?)
.
Examples
# bad
refute_equal(nil, actual)
refute_equal(nil, actual, 'message')
refute(actual.nil?)
refute(actual.nil?, 'message')
refute_predicate(object, :nil?)
refute_predicate(object, :nil?, 'message')
# good
refute_nil(actual)
refute_nil(actual, 'message')
Minitest/RefutePathExists
Enabled by default | Safe | Supports autocorrection | Version Added | Version Changed |
---|---|---|---|---|
Pending |
Yes |
Yes |
0.10 |
- |
This cop enforces the test to use refute_path_exists
instead of using refute(File.exist?(path))
.
Minitest/RefutePredicate
Enabled by default | Safe | Supports autocorrection | Version Added | Version Changed |
---|---|---|---|---|
Pending |
Yes |
Yes |
0.18 |
- |
This cop enforces the test to use refute_predicate
instead of using refute(obj.a_predicate_method?)
.
Minitest/RefuteRespondTo
Enabled by default | Safe | Supports autocorrection | Version Added | Version Changed |
---|---|---|---|---|
Enabled |
Yes |
Yes |
0.4 |
- |
This cop enforces the test to use refute_respond_to(object, :do_something)
over refute(object.respond_to?(:do_something))
.
Minitest/TestMethodName
Enabled by default | Safe | Supports autocorrection | Version Added | Version Changed |
---|---|---|---|---|
Pending |
Yes |
Yes |
0.10 |
- |
This cop enforces that test method names start with test_
prefix.
It aims to prevent tests that aren’t executed by forgetting to start test method name with test_
.
Minitest/UnreachableAssertion
Enabled by default | Safe | Supports autocorrection | Version Added | Version Changed |
---|---|---|---|---|
Pending |
Yes |
No |
0.14 |
- |
This cop checks for assert_raises
has an assertion method at
the bottom of block because the assertion will be never reached.
Minitest/UnspecifiedException
Enabled by default | Safe | Supports autocorrection | Version Added | Version Changed |
---|---|---|---|---|
Pending |
Yes |
No |
0.10 |
- |
This cop checks for a specified error in assert_raises
.