Class: Defekt::Test

Inherits:
Object show all
Defined in:
lib/defekt/test.rb

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(methot) ⇒ Test

Returns a new instance of Test.



5
6
7
# File 'lib/defekt/test.rb', line 5

def initialize(methot)
  @methot = methot
end

Instance Attribute Details

#errorObject (readonly)

Returns the value of attribute error.



3
4
5
# File 'lib/defekt/test.rb', line 3

def error
  @error
end

#methotObject (readonly)

Returns the value of attribute methot.



3
4
5
# File 'lib/defekt/test.rb', line 3

def methot
  @methot
end

Instance Method Details

#broken?Boolean

Returns:

  • (Boolean)


48
49
50
# File 'lib/defekt/test.rb', line 48

def broken?
  failed? || errored?
end

#errored?Boolean

Returns:

  • (Boolean)


44
45
46
# File 'lib/defekt/test.rb', line 44

def errored?
  ran? && !failed? && error.kind_of?(Exception)
end

#failed?Boolean

Returns:

  • (Boolean)


40
41
42
# File 'lib/defekt/test.rb', line 40

def failed?
  ran? && !passed? && error.kind_of?(Errors::BaseError)
end

#instanceObject



9
10
11
# File 'lib/defekt/test.rb', line 9

def instance
  @instance ||= methot.owner.new
end

#passed?Boolean

Returns:

  • (Boolean)


36
37
38
# File 'lib/defekt/test.rb', line 36

def passed?
  ran? && error.nil?
end

#ran?Boolean

Returns:

  • (Boolean)


32
33
34
# File 'lib/defekt/test.rb', line 32

def ran?
  !!@ran
end

#runObject



13
14
15
16
17
18
19
20
21
22
23
24
25
26
# File 'lib/defekt/test.rb', line 13

def run
  @ran = true

  begin
    instance.before
    methot.bind(instance).call
    '.'
  rescue => e
    @error = e
    status.chars.first
  ensure
    instance.after
  end
end

#statusObject



52
53
54
55
56
57
58
59
60
61
62
63
# File 'lib/defekt/test.rb', line 52

def status
  case
  when passed?
    'passed'
  when failed?
    'failed'
  when errored?
    'errored'
  else
    'did not run'
  end
end

#summaryObject



28
29
30
# File 'lib/defekt/test.rb', line 28

def summary
  "#{methot.owner}##{methot.name} at #{methot.source_location.join(':')} #{status}"
end