class MiniAssert::TestSuite

Test executable object

Public Class Methods

new(test_classes) click to toggle source
# File lib/mini_assert/test_suite.rb, line 6
def initialize(test_classes)
  @test_classes = test_classes
  @results = { total_tests: 0, passed_tests: 0 }
end

Public Instance Methods

run!() click to toggle source
# File lib/mini_assert/test_suite.rb, line 11
def run!
  @test_classes.each do |test_class|
    test_obj = test_class.new
    test_obj.each_test! { |message| show_failure message }
    @results[:total_tests] += test_obj.total_tests
    @results[:passed_tests] += test_obj.passed_tests
  end
  show_results
end

Private Instance Methods

show_failure(message) click to toggle source
# File lib/mini_assert/test_suite.rb, line 33
def show_failure(message)
  status = MiniAssert::Crayon.red('fail')
  puts "[#{status}] #{message}"
end
show_results() click to toggle source
# File lib/mini_assert/test_suite.rb, line 23
def show_results
  ratio_string = "#{@results[:passed_tests]}/#{@results[:total_tests]}"
  status = if @results[:passed_tests] == @results[:total_tests]
             MiniAssert::Crayon.green(ratio_string)
           else
             MiniAssert::Crayon.red(ratio_string)
           end
  puts "[#{status}] tests succeded"
end