class Minitest::Example

Public Class Methods

runnable_methods() click to toggle source
# File lib/minitest/example.rb, line 8
def runnable_methods
  methods_matching(/^example_/)
end

Public Instance Methods

capture_stdout() { || ... } click to toggle source
# File lib/minitest/example.rb, line 44
def capture_stdout
  original_out = $stdout
  out = StringIO.new
  $stdout = out
  yield
  out.string
ensure
  $stdout = original_out
end
run() click to toggle source
# File lib/minitest/example.rb, line 13
def run
  code = self.class.instance_method(self.name).source
  parser = Rgot::ExampleParser.new(code)
  parser.parse
  example = parser.examples.first

  with_info_handler do
    time_it do
      capture_exceptions do
        before_setup; setup; after_setup

        out = capture_stdout do
          self.send self.name
        end

        assert_equal example.output.strip, out.strip
      end

      TEARDOWN_METHODS.each do |hook|
        capture_exceptions do
          self.send hook
        end
      end
    end
  end

  result = ExampleResult.from self # per contract
  result.source_location = self.method(self.name).source_location
  result
end