Class: Tryouts::ExpectationEvaluators::Base

Inherits:
Object
  • Object
show all
Defined in:
lib/tryouts/expectation_evaluators/base.rb

Overview

Base class for all expectation evaluators

Instance Attribute Summary collapse

Class Method Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(expectation, test_case, context) ⇒ Base

Returns a new instance of Base.

Parameters:

  • expectation (Object)

    the expectation object containing content and metadata

  • test_case (Object)

    the test case being evaluated

  • context (Object)

    the context in which to evaluate expectations



20
21
22
23
24
# File 'lib/tryouts/expectation_evaluators/base.rb', line 20

def initialize(expectation, test_case, context)
  @expectation = expectation
  @test_case   = test_case
  @context     = context
end

Instance Attribute Details

#contextObject (readonly)

Returns the value of attribute context.



9
10
11
# File 'lib/tryouts/expectation_evaluators/base.rb', line 9

def context
  @context
end

#expectationObject (readonly)

Returns the value of attribute expectation.



9
10
11
# File 'lib/tryouts/expectation_evaluators/base.rb', line 9

def expectation
  @expectation
end

#test_caseObject (readonly)

Returns the value of attribute test_case.



9
10
11
# File 'lib/tryouts/expectation_evaluators/base.rb', line 9

def test_case
  @test_case
end

Class Method Details

.handles?(expectation_type) ⇒ Boolean

Returns whether this evaluator can handle the given expectation type.

Parameters:

  • expectation_type (Symbol)

    the type of expectation to check

Returns:

  • (Boolean)

    whether this evaluator can handle the given expectation type

Raises:

  • (NotImplementedError)


13
14
15
# File 'lib/tryouts/expectation_evaluators/base.rb', line 13

def self.handles?(expectation_type)
  raise NotImplementedError, "#{self} must implement handles? class method"
end

Instance Method Details

#evaluate(actual_result = nil) ⇒ Hash

Evaluates the expectation against the actual result

Parameters:

  • actual_result (Object) (defaults to: nil)

    the result to evaluate against the expectation

Returns:

  • (Hash)

    evaluation result with passed status and details

Raises:

  • (NotImplementedError)


29
30
31
# File 'lib/tryouts/expectation_evaluators/base.rb', line 29

def evaluate(actual_result = nil)
  raise NotImplementedError, "#{self.class} must implement evaluate method"
end