Class: Riot::EquivalentToMacro

Inherits:
AssertionMacro show all
Defined in:
lib/riot/assertion_macros/equivalent_to.rb

Overview

Asserts that the result of the test is equivalent to the expected value. Using the === operator.

asserts("test") { "foo" }.equivalent_to(String)
should("test") { "foo" }.equivalent_to("foo")
asserts("test") { "foo" }.equivalent_to { "foo" }

You can also assert that the expected value is not equivalent to something else:

denies("test") { "foo" }.equivalent_to(Boolean)
denies("test") { "foo" }.equivalent_to("bar")

Underneath the hood, this assertion macro uses:

expected === actual

Instance Attribute Summary

Attributes inherited from AssertionMacro

#file, #line

Instance Method Summary collapse

Methods inherited from AssertionMacro

#error, #expected_message, expects_exception!, #expects_exception?, #fail, #new_message, #pass, register, #should_have_message

Instance Method Details

#devaluate(actual, expected) ⇒ Array

Supports negative/converse assertion testing. This is also where magic happens.

Parameters:

  • actual (Object)

    the value returned from evaling the Assertion block

  • expected (Object)

    the object value to compare actual to

Returns:



31
32
33
34
35
36
37
# File 'lib/riot/assertion_macros/equivalent_to.rb', line 31

def devaluate(actual, expected)
  if expected === actual
    fail expected_message(actual).not_to_be_equivalent_to(expected)
  else
    pass new_message.is_equivalent_to(expected)
  end
end

#evaluate(actual, expected) ⇒ Array

Supports positive assertion testing. This is where magic happens.

Parameters:

  • actual (Object)

    the value returned from evaling the Assertion block

  • expected (Object)

    the object value to compare actual to

Returns:



21
22
23
24
25
26
27
# File 'lib/riot/assertion_macros/equivalent_to.rb', line 21

def evaluate(actual, expected)
  if expected === actual
    pass new_message.is_equivalent_to(expected)
  else
    fail expected_message(actual).to_be_equivalent_to(expected)
  end
end