Class: StupidTest::Test

Inherits:
Object
  • Object
show all
Defined in:
lib/stupid_test.rb

Class Method Summary collapse

Instance Method Summary collapse

Class Method Details

.inherited(klass) ⇒ Object



27
28
29
# File 'lib/stupid_test.rb', line 27

def inherited(klass)
  tests << klass.new
end

.runObject



31
32
33
34
35
36
37
38
39
40
# File 'lib/stupid_test.rb', line 31

def run
  tests.each &:run
  puts
  errors = tests.flat_map(&:errors)
  methods_count = tests.map(&:test_methods_count).inject &:+
  if errors.any?
    puts "\n#{errors.count}/#{methods_count} Tests failed:\n"\
         "\n#{errors.join("\n\n")}".pink
  end
end

.testsObject



23
24
25
# File 'lib/stupid_test.rb', line 23

def tests
  @tests ||= []
end

Instance Method Details

#assert(value, message = nil) ⇒ Object



71
72
73
74
75
76
77
78
79
80
81
82
83
84
# File 'lib/stupid_test.rb', line 71

def assert(value, message = nil)
  if value
    print_success
  else
    location = caller[0]
    location = caller[1] if location.include? 'refute'
    report Error.new(
      :expected => value,
      :actual   => !value,
      :location => location,
      :message  => message
    )
  end
end

#assert_equal(expected, actual) ⇒ Object



59
60
61
62
63
64
65
66
67
68
69
# File 'lib/stupid_test.rb', line 59

def assert_equal(expected, actual)
  if expected == actual
    print_success
  else
    report Error.new(
      :expected => expected,
      :actual   => actual,
      :location => caller[0]
    )
  end
end

#errorsObject



43
44
45
# File 'lib/stupid_test.rb', line 43

def errors
  @errors ||= []
end

#refute(value, message = nil) ⇒ Object



86
87
88
# File 'lib/stupid_test.rb', line 86

def refute(value, message = nil)
  assert !value, message
end

#runObject



47
48
49
# File 'lib/stupid_test.rb', line 47

def run
  test_methods.each { |m| send m }
end

#test_methodsObject



51
52
53
# File 'lib/stupid_test.rb', line 51

def test_methods
  self.class.public_instance_methods(false)
end

#test_methods_countObject



55
56
57
# File 'lib/stupid_test.rb', line 55

def test_methods_count
  test_methods.count
end