Files
ruby_koans/koans/about_nil.rb
Ken Barker 9563a4ef27 Add preceding bang to make first test fail
Seems in-line with the other koans at this point
to require the student remove the bang.
2009-10-09 18:06:47 -04:00

50 lines
1.3 KiB
Ruby

require 'edgecase'
class AboutNil < EdgeCase::Koan
def test_nil_is_an_object
#
# Hint: '!'s negate the response from what follows.
#
assert !nil.is_a?(Object), "Unlike NULL in other languages"
end
def test_you_dont_get_null_pointer_errors_when_calling_methods_on_nil
#
# What is the Exception that is thrown when you call a method that
# does not exist?
#
# Hint: launch irb and try the code in the block below.
#
# Don't be confused by the code below yet. It's using blocks
# which are explained later on in about_blocks.rb. For now,
# think about it like running nil.some_method_nil_doesnt_know_about
# in a sandbox and catching the error class into the exception
# variable.
#
exception = assert_raise(___) do
nil.some_method_nil_doesnt_know_about
end
#
# What is the error message itself? What substring or pattern could
# you test against in order to have a good idea what the string is?
#
assert_match /__/, exception.message
end
def test_nil_has_a_few_methods_defined_on_it
assert_equal __, nil.nil?
assert_equal __, nil.to_s
assert_equal __, nil.inspect
# THINK ABOUT IT:
#
# Is it better to use
# obj.nil?
# or
# obj == nil
# Why?
end
end