Class: Testdo::Test

Inherits:
Object
  • Object
show all
Includes:
Testdo
Defined in:
lib/testdo.rb

Constant Summary collapse

BASIC_EXPECTATIONS =
%i[== === !=]
CAPTURE =
{
[Class,Time,Symbol,Rational,Integer,Hash,Bignum,Float,Complex,NilClass,Fixnum, Range, String, NilClass, Regexp, TrueClass, FalseClass] => BASIC_EXPECTATIONS,
[Array] => %i[include? all? any? empty? one? none? member? equal?] + BASIC_EXPECTATIONS }

Constants included from Testdo

VERSION

Instance Method Summary collapse

Methods included from Testdo

#Capture, #CaptureModule

Constructor Details

#initialize(capture: CAPTURE) ⇒ Test

Returns a new instance of Test.



19
20
21
22
# File 'lib/testdo.rb', line 19

def initialize(capture: CAPTURE)
  @capture = capture
  @result = []
end

Instance Method Details

#feed(&block) ⇒ Object



24
25
26
27
28
29
30
31
# File 'lib/testdo.rb', line 24

def feed &block
  Capture(@capture) { |receiver,msg,arguments,block,result|
    text = "#{receiver.inspect} #{msg.to_s} #{arguments.map(&:inspect).join(', ')}" 
    @result << {text: text, result: result}
  }.eval(&block)

  self
end


33
34
35
36
37
38
39
40
41
42
43
44
# File 'lib/testdo.rb', line 33

def print
  successful = @result.select { |x| x[:result] }
  failed    = @result.select { |x| !x[:result] }

  if failed.count > 0
    puts 'Failed examples:'
    failed.each { |result| puts result[:text] }
    puts "OK: #{successful.count}, failed: #{failed.count}"
  else
    puts "OK: #{successful.count}"
  end
end