Class: Reeve::Testing::Result

Inherits:
Object
  • Object
show all
Defined in:
lib/reeve/testing/result.rb

Overview

What a check hands back: whether the guarantee held, the sentence explaining it, and the structured facts behind the sentence.

The message is built here and nowhere else. A front-end — an RSpec matcher, a Minitest assertion, a rake task — reads message and prints it; none of them composes their own (FR-019). That is what makes the same violation read identically from all three.

Instance Attribute Summary collapse

Class Method Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(check:, passed:, message:, details: {}) ⇒ Result

Returns a new instance of Result.



23
24
25
26
27
28
29
# File 'lib/reeve/testing/result.rb', line 23

def initialize(check:, passed:, message:, details: {})
  @check   = check.to_s
  @passed  = passed ? true : false
  @message = message.to_s
  @details = details.freeze
  freeze
end

Instance Attribute Details

#checkObject (readonly)

Returns the value of attribute check.



13
14
15
# File 'lib/reeve/testing/result.rb', line 13

def check
  @check
end

#detailsObject (readonly)

Returns the value of attribute details.



13
14
15
# File 'lib/reeve/testing/result.rb', line 13

def details
  @details
end

#messageObject (readonly)

Returns the value of attribute message.



13
14
15
# File 'lib/reeve/testing/result.rb', line 13

def message
  @message
end

Class Method Details

.failed(check:, message:, details: {}) ⇒ Object



19
20
21
# File 'lib/reeve/testing/result.rb', line 19

def self.failed(check:, message:, details: {})
  new(check: check, passed: false, message: message, details: details)
end

.passed(check:, message:, details: {}) ⇒ Object



15
16
17
# File 'lib/reeve/testing/result.rb', line 15

def self.passed(check:, message:, details: {})
  new(check: check, passed: true, message: message, details: details)
end

Instance Method Details

#failed?Boolean

Returns:

  • (Boolean)


35
36
37
# File 'lib/reeve/testing/result.rb', line 35

def failed?
  !@passed
end

#inspectObject



43
44
45
46
# File 'lib/reeve/testing/result.rb', line 43

def inspect
  "#<Reeve::Testing::Result #{check} #{passed? ? 'passed' : 'failed'} " \
    "#{message.inspect}>"
end

#passed?Boolean

Returns:

  • (Boolean)


31
32
33
# File 'lib/reeve/testing/result.rb', line 31

def passed?
  @passed
end

#to_sObject



39
40
41
# File 'lib/reeve/testing/result.rb', line 39

def to_s
  message
end