Sha256: 1a848e5ea46e6a7cea3a80b90264afba590e171c66c72944eb38063f690b9795

Contents?: true

Size: 899 Bytes

Versions: 1

Compression:

Stored size: 899 Bytes

Contents

# frozen_string_literal: true

require 'minitest'
require 'minitest/autorun'

require 'cri'

require 'stringio'

module Cri
  class TestCase < Minitest::Test
    def setup
      @orig_io = capture_io
    end

    def teardown
      uncapture_io(*@orig_io)
    end

    def capture_io_while
      orig_io = capture_io
      yield
      [$stdout.string, $stderr.string]
    ensure
      uncapture_io(*orig_io)
    end

    def lines(string)
      string.scan(/^.*\n/).map(&:chomp)
    end

    private

    def capture_io
      orig_stdout = $stdout
      orig_stderr = $stderr

      $stdout = StringIO.new
      $stderr = StringIO.new

      [orig_stdout, orig_stderr]
    end

    def uncapture_io(orig_stdout, orig_stderr)
      $stdout = orig_stdout
      $stderr = orig_stderr
    end
  end
end

# Unexpected system exit is unexpected
::Minitest::Test::PASSTHROUGH_EXCEPTIONS.delete(SystemExit)

Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
cri-2.15.12 test/helper.rb