Class: Neospec::Expector

Inherits:
Object
  • Object
show all
Includes:
EqualityExpectors, ErrorExpectors, InclusionExpectors
Defined in:
lib/neospec/expector.rb,
lib/neospec/expector/error_expectors.rb,
lib/neospec/expector/equality_expectors.rb,
lib/neospec/expector/inclusion_expectors.rb

Defined Under Namespace

Modules: EqualityExpectors, ErrorExpectors, InclusionExpectors

Instance Attribute Summary collapse

Instance Method Summary collapse

Methods included from ErrorExpectors

#to_raise

Methods included from InclusionExpectors

#not_to_be_in, #not_to_include, #to_be_in, #to_include

Methods included from EqualityExpectors

#not_to_equal, #to_be_a, #to_be_empty, #to_be_false, #to_be_nil, #to_be_true, #to_equal

Constructor Details

#initialize(result:, actual:, stack:, logger:) ⇒ Expector

Returns a new instance of Expector.



9
10
11
12
13
14
# File 'lib/neospec/expector.rb', line 9

def initialize(result:, actual:, stack:, logger:)
  @actual = actual
  @stack = stack
  @logger = logger
  @result = result
end

Instance Attribute Details

#failureObject (readonly)

Returns the value of attribute failure.



7
8
9
# File 'lib/neospec/expector.rb', line 7

def failure
  @failure
end

#resultObject (readonly)

Returns the value of attribute result.



7
8
9
# File 'lib/neospec/expector.rb', line 7

def result
  @result
end

Instance Method Details

#actualObject



36
37
38
39
40
41
42
# File 'lib/neospec/expector.rb', line 36

def actual
  if @actual.is_a?(Proc)
    @actual = @actual.call
  end

  @actual
end

#failed(message) ⇒ Object



25
26
27
28
29
30
31
32
33
34
# File 'lib/neospec/expector.rb', line 25

def failed(message)
  @result.expectations += 1
  @result.failures << Neospec::Spec::Result::Failure.new(
    stack: @stack,
    message: "Expected #{message}"
  )

  log(message, context: :expect)
  raise Neospec::Spec::Result::FailureEncounteredError
end

#log(message, context: nil) ⇒ Object



16
17
18
# File 'lib/neospec/expector.rb', line 16

def log(message, context: nil)
  @logger.log(message, context: context, result: @result)
end

#succeeded(message) ⇒ Object



20
21
22
23
# File 'lib/neospec/expector.rb', line 20

def succeeded(message)
  @result.expectations += 1
  log(message, context: :expect)
end