instance method assert_deprecated

Ruby on Rails 7.1.6

Since v7.0.10

Available in: v7.0.10 v7.1.6 v7.2.3 v8.0.4 v8.1.2

Signature

assert_deprecated(deprecator, &block)
assert_deprecated(match, deprecator, &block)

Asserts that a matching deprecation warning was emitted by the given deprecator during the execution of the yielded block.

assert_deprecated(/foo/, CustomDeprecator) do
  CustomDeprecator.warn "foo should no longer be used"
end

The match object may be a Regexp, or String appearing in the message.

assert_deprecated('foo', CustomDeprecator) do
  CustomDeprecator.warn "foo should no longer be used"
end

If the match is omitted (or explicitly nil), any deprecation warning will match.

assert_deprecated(CustomDeprecator) do
  CustomDeprecator.warn "foo should no longer be used"
end

Parameters

match opt = nil
deprecator opt = nil
block block
Source
# File activesupport/lib/active_support/testing/deprecation.rb, line 30
      def assert_deprecated(match = nil, deprecator = nil, &block)
        match, deprecator = nil, match if match.is_a?(ActiveSupport::Deprecation)
        unless deprecator
          ActiveSupport.deprecator.warn("assert_deprecated without a deprecator is deprecated")
          deprecator = ActiveSupport::Deprecation._instance
        end
        result, warnings = collect_deprecations(deprecator, &block)
        assert !warnings.empty?, "Expected a deprecation warning within the block but received none"
        if match
          match = Regexp.new(Regexp.escape(match)) unless match.is_a?(Regexp)
          assert warnings.any? { |w| match.match?(w) }, "No deprecation warning matched #{match}: #{warnings.join(', ')}"
        end
        result
      end

Defined in activesupport/lib/active_support/testing/deprecation.rb line 30 · View on GitHub · Improve this page · Find usages on GitHub

Defined in ActiveSupport::Testing::Deprecation

Type at least 2 characters to search.

↑↓ navigate · open · esc close