Skip to content
  • Yasuo Honda's avatar
    e53bbb43
    Enable `Minitest/AssertNil` cop to address `DEPRECATED: Use assert_nil if expecting nil` warning · e53bbb43
    Yasuo Honda authored
    This commit addresses the `DEPRECATED: Use assert_nil if expecting nil` warning at
    https://buildkite.com/rails/rails/builds/116902#01953bd2-7999-468a-bcd6-5e9b68964fa6/1270-1276
    by enabling `Minitest/AssertNil` available since RuboCop Minitest 0.1.0.
    
    ```ruby
    $ cd railties
    $ RAILS_STRICT_WARNINGS=1 bin/test test/application/configuration_test.rb:4031
    Run options: --seed 1261
    
    DEPRECATED: Use assert_nil if expecting nil from /home/yahonda/src/github.com/rails/rails/railties/test/application/configuration_test.rb:4031. This will fail in Minitest 6.
    E
    
    Error:
    ApplicationTests::ConfigurationTest#test_ActiveStorage.variant_processor_uses_mini_magick_without_Rails_7_defaults:
    ActiveSupport::RaiseWarnings::WarningError: DEPRECATED: Use assert_nil if expecting nil from /home/yahonda/src/github.com/rails/rails/railties/test/application/configuration_test.rb:4031. This will fail in Minitest 6.
    
        /home/yahonda/src/github.com/rails/rails/activesupport/lib/active_support/testing/strict_warnings.rb:38:in 'ActiveSupport::RaiseWarnings#warn'
    
    bin/test test/application/configuration_test.rb:4026
    
    Finished in 1.568723s, 0.6375 runs/s, 0.6375 assertions/s.
    1 runs, 1 assertions, 0 failures, 1 errors, 0 skips
    $
    ```
    
    Here are the output of rubocop -a that corrects other assertions that are not deprecated.
    
    ```ruby
    $ bundle exec rubocop -a
    ... snip ...
    Offenses:
    
    actionpack/test/controller/integration_test.rb:498:7: C: [Corrected] Minitest/AssertNil: Prefer using assert_nil(request.parameters["leaks"]).
          assert_predicate request.parameters["leaks"], :nil?
          ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
    actiontext/test/unit/model_test.rb:21:7: C: [Corrected] Minitest/AssertNil: Prefer using assert_nil(message.content).
          assert_predicate message.content, :nil?
          ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
    actiontext/test/unit/model_test.rb:149:7: C: [Corrected] Minitest/AssertNil: Prefer using assert_nil(message.content).
          assert_predicate message.content, :nil?
          ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
    activemodel/test/cases/type/boolean_test.rb:10:9: C: [Corrected] Minitest/AssertNil: Prefer using assert_nil(type.cast("")).
            assert_predicate type.cast(""), :nil?
            ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
    activemodel/test/cases/type/boolean_test.rb:11:9: C: [Corrected] Minitest/AssertNil: Prefer using assert_nil(type.cast(nil)).
            assert_predicate type.cast(nil), :nil?
            ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
    activemodel/test/cases/validations_test.rb:255:5: C: [Corrected] Minitest/AssertNil: Prefer using assert_nil(t.author_name).
        assert_predicate t.author_name, :nil?
        ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
    activerecord/test/cases/associations/has_many_through_associations_test.rb:1246:5: C: [Corrected] Minitest/AssertNil: Prefer using assert_nil(post[:author_count]).
        assert_predicate post[:author_count], :nil?
        ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
    railties/test/application/configuration_test.rb:4031:7: C: [Corrected] Minitest/AssertNil: Prefer using assert_nil(ActiveStorage.variant_processor).
          assert_equal nil, ActiveStorage.variant_processor
          ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
    
    3345 files inspected, 8 offenses detected, 8 offenses corrected
    $
    ```
    
    Refer to
    https://github.com/rubocop/rubocop-minitest/blob/master/CHANGELOG.md#010-2019-09-01
    https://github.com/minitest/minitest/blob/master/History.rdoc#5230--2024-05-15-
    https://github.com/minitest/minitest/commit/f0f17b99
    e53bbb43
    Enable `Minitest/AssertNil` cop to address `DEPRECATED: Use assert_nil if expecting nil` warning
    Yasuo Honda authored
    This commit addresses the `DEPRECATED: Use assert_nil if expecting nil` warning at
    https://buildkite.com/rails/rails/builds/116902#01953bd2-7999-468a-bcd6-5e9b68964fa6/1270-1276
    by enabling `Minitest/AssertNil` available since RuboCop Minitest 0.1.0.
    
    ```ruby
    $ cd railties
    $ RAILS_STRICT_WARNINGS=1 bin/test test/application/configuration_test.rb:4031
    Run options: --seed 1261
    
    DEPRECATED: Use assert_nil if expecting nil from /home/yahonda/src/github.com/rails/rails/railties/test/application/configuration_test.rb:4031. This will fail in Minitest 6.
    E
    
    Error:
    ApplicationTests::ConfigurationTest#test_ActiveStorage.variant_processor_uses_mini_magick_without_Rails_7_defaults:
    ActiveSupport::RaiseWarnings::WarningError: DEPRECATED: Use assert_nil if expecting nil from /home/yahonda/src/github.com/rails/rails/railties/test/application/configuration_test.rb:4031. This will fail in Minitest 6.
    
        /home/yahonda/src/github.com/rails/rails/activesupport/lib/active_support/testing/strict_warnings.rb:38:in 'ActiveSupport::RaiseWarnings#warn'
    
    bin/test test/application/configuration_test.rb:4026
    
    Finished in 1.568723s, 0.6375 runs/s, 0.6375 assertions/s.
    1 runs, 1 assertions, 0 failures, 1 errors, 0 skips
    $
    ```
    
    Here are the output of rubocop -a that corrects other assertions that are not deprecated.
    
    ```ruby
    $ bundle exec rubocop -a
    ... snip ...
    Offenses:
    
    actionpack/test/controller/integration_test.rb:498:7: C: [Corrected] Minitest/AssertNil: Prefer using assert_nil(request.parameters["leaks"]).
          assert_predicate request.parameters["leaks"], :nil?
          ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
    actiontext/test/unit/model_test.rb:21:7: C: [Corrected] Minitest/AssertNil: Prefer using assert_nil(message.content).
          assert_predicate message.content, :nil?
          ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
    actiontext/test/unit/model_test.rb:149:7: C: [Corrected] Minitest/AssertNil: Prefer using assert_nil(message.content).
          assert_predicate message.content, :nil?
          ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
    activemodel/test/cases/type/boolean_test.rb:10:9: C: [Corrected] Minitest/AssertNil: Prefer using assert_nil(type.cast("")).
            assert_predicate type.cast(""), :nil?
            ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
    activemodel/test/cases/type/boolean_test.rb:11:9: C: [Corrected] Minitest/AssertNil: Prefer using assert_nil(type.cast(nil)).
            assert_predicate type.cast(nil), :nil?
            ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
    activemodel/test/cases/validations_test.rb:255:5: C: [Corrected] Minitest/AssertNil: Prefer using assert_nil(t.author_name).
        assert_predicate t.author_name, :nil?
        ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
    activerecord/test/cases/associations/has_many_through_associations_test.rb:1246:5: C: [Corrected] Minitest/AssertNil: Prefer using assert_nil(post[:author_count]).
        assert_predicate post[:author_count], :nil?
        ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
    railties/test/application/configuration_test.rb:4031:7: C: [Corrected] Minitest/AssertNil: Prefer using assert_nil(ActiveStorage.variant_processor).
          assert_equal nil, ActiveStorage.variant_processor
          ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
    
    3345 files inspected, 8 offenses detected, 8 offenses corrected
    $
    ```
    
    Refer to
    https://github.com/rubocop/rubocop-minitest/blob/master/CHANGELOG.md#010-2019-09-01
    https://github.com/minitest/minitest/blob/master/History.rdoc#5230--2024-05-15-
    https://github.com/minitest/minitest/commit/f0f17b99
Loading