require 'minitest/autorun' require 'stringio' require 'time' require 'minitest/junit' class ReporterTest < Minitest::Test def test_no_tests_generates_an_empty_suite reporter = create_reporter reporter.report assert_equal "\n\n", reporter.output end def test_formats_each_result_with_a_formatter reporter = create_reporter results = rand(100).times.map do |i| result = "test_name#{i}" reporter.record result result end reporter.report expected = "\n#{results.join "\n"}\n\n" assert_equal expected, reporter.output end private def create_reporter io = StringIO.new reporter = Minitest::Junit::Reporter.new io def reporter.output @io.string end def reporter.format(result) result end reporter.start reporter end end