module Minitest::Fail

Public Class Methods

fail!() click to toggle source
# File lib/minitest/fail_plugin.rb, line 17
def self.fail!
  @fail = true
end
fail?() click to toggle source
# File lib/minitest/fail_plugin.rb, line 21
def self.fail?
  @fail ||= false
end

Public Instance Methods

record(result) click to toggle source
Calls superclass method
# File lib/minitest/fail_plugin.rb, line 25
def record result
  super
  if result.assertions.zero?
    empty_test = result.method(result.name).source_location
    e          = ::Minitest::Assertion.new "Empty test <#{result}>"

    define_and_redefine e.class, :location do
      -> { empty_test.join(":") }
    end

    result.failures << e
    self.results    << result
  end
end

Private Instance Methods

define_and_redefine(klass, method) { || ... } click to toggle source
# File lib/minitest/fail_plugin.rb, line 42
def define_and_redefine klass, method
  return unless block_given?

  if klass.send :method_defined?, method
    klass.send :remove_method, method
  end
  klass.send :define_method, method, yield
end