def evaluate(actual, *expectings)
      prepare(actual, *expectings) do |variable, expected_value, actual_value|
        if actual_value.nil?
          fail expected_message(variable).to_be_assigned_a_value
        elsif !expected_value.nil? && expected_value != actual_value
          fail expected_message(variable).to_be_assigned_with(expected_value).not(actual_value)
        else
          if expected_value && actual_value
            pass new_message.assigns(variable).with(expected_value)
          else
            pass new_message.assigns(variable)
          end
        end
      end
    end
(see Riot::AssertionMacro#evaluate)
@param [Symbol, String] variable name of instance variable to look for
@param [Object, nil] expected_value an optional value to validate for the variable