class TestOutputPresenter
Public Class Methods
new(test_results)
click to toggle source
# File lib/test_output_presenter.rb, line 12 def initialize(test_results) @test_results = test_results @tests = test_results.tests unless @test_results.compile_error? end
parse(test_results)
click to toggle source
# File lib/test_output_presenter.rb, line 2 def self.parse(test_results) parser = self.new(test_results) if test_results.compile_error? parser.parse_error else parser.parse end end
Public Instance Methods
parse()
click to toggle source
# File lib/test_output_presenter.rb, line 17 def parse output = "" output += dots_or_fs + "\n" if failures.count > 0 output += blank_lines(3) + "\n" output += failed_tests + "\n" end output += blank_lines(2) + "\n" output += "#{@tests.count} tests ran, #{failures.count} red, #{passed.count} green" output += blank_lines(3) output end
parse_error()
click to toggle source
# File lib/test_output_presenter.rb, line 32 def parse_error [ "Unable to run tests, SML says:".red, "", "", @test_results.message, ].join("\n") end
Private Instance Methods
blank_lines(n)
click to toggle source
# File lib/test_output_presenter.rb, line 43 def blank_lines(n) Array.new(n, "").join("\n") end
dots_or_fs()
click to toggle source
# File lib/test_output_presenter.rb, line 47 def dots_or_fs @tests.inject("") do |acc, test| if test.passed? acc += ".".green else acc += "F".red end end end
failed_tests()
click to toggle source
# File lib/test_output_presenter.rb, line 57 def failed_tests failures.map { |t| t.name.red }.join("\n") end
failures()
click to toggle source
# File lib/test_output_presenter.rb, line 61 def failures @tests.reject(&:passed?) end
passed()
click to toggle source
# File lib/test_output_presenter.rb, line 65 def passed @tests.select(&:passed?) end